Mybatis的学习(一)只Mybatis的介绍和使用

Mybatis的历史

原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation迁移到了google code,随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis,代码于2013年11月迁移到Github。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)

Mybatis的特性

1.mybatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架

2.mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集

3.Mybatis可以简单使用的XML或者注解用于配置和原始映射将接口和java的pojo映射成为数据库中的记录

4.Mybatis是一个半自动的ORM框架

Mybatis的下载

下载地址http://github.com/mybatis/mybatis-3http://github.com/mybatis/mybatis-3

Mybatis和其它持久化技术对比

1)JDBC
SQL 夹在Java代码块里,耦合度高导致硬编码内伤
维护不易且实际开发需求中SQL有变化,频繁修改的情况很多
2)Hibernate 和 JPA
长难复杂SQL, 对于Hibernate 而言处理也不容易
内部自动生产的SQL,不容易做特殊优化
基于全映射的全自动框架,大量字段的POJO 进行部分映射时,比较困难。导致数据库性能下降
3) Mybatis
对于开发人员而言,核心SQL还是要自己书写跟优化
SQL和Java编码分开,功能便捷清洗,一个专注业务,一个专注数据

Mybatis的使用

1.创建项目

2.引入依赖


            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.2
        
        
            mysql
            mysql-connector-java
        

Spring整合Mybatis

需要创建Mybatis的核心配置文件命名为mybatis-config.xml

存放位置是src/main/resources目录下






详细说明:






    
        
        
            
            
            
            
        
    


    
        
    

创建mapper接口

Mybatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

public interface UserMapper{

}

创建mybatis映射文件

相关概念ORM对象关系映射

对象:Java的实体类对象

关系:关系型数据库

映射:两者之间的关系

java概念 数据库概念
属性 字段/列
对象 记录/行

1.映射文件的命名规范

表对应的实体类的表名+Mapper.xml

例如:表t_user,映射的实体类为User,所以对应文件为UserMapper.xml

因此一个映射文件对应一个实体类,对应一张表的操作。

Mybatis映射文件用于编写SQL,访问以及操作表中的数据

Mybatis映射文件存放的位置是src/main/resources/mappers目录下

2.Mybatis中可以面向接口操作数据,要保持两个一致

a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致

b>mapper接口方法的方法名和映射文件中编写SQL的标签的id属性保持一致




    
      insert into t_user vlues(null,'admin','123456',23,'男','[email protected]',now())
    

测试添加功能


    @Test
    void contextLoads() throws IOException {
        //加载核心配置
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //获取sqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取sqlSessionFactory生成Sqlsession对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //创建Sqlsession对象通过Sqlsession对象操作的sql都必须手动提交或者回滚
        //SqlSession session = sqlSessionFactory.openSession();
        //创建Sqlsession对象通过Sqlsession对象操作的sql都会自动提交
        SqlSession session = sqlSessionFactory.openSession(true);
        //通过代理创建UserMapper实现类对象
        UserMapper mapper = session.getMapper(UserMapper.class);
            //调用方法匹配调用的方法映射文件的SQL标签并执行SQL语句
      int result=  mapper.insertUser();
        //session.commit();
        System.out.println("结果"+result);
    }

优化功能

加入log4j日志依赖


        
            log4j
            log4j
            1.2.17
        

加入log4j的配置文件

log4j的配置文件吗为log4j.xml存放的位置是src/main/resources目录下



 

 
    
    
        
        
            
        
 
        
        
            
            
            
            
        
    
 
 
    
    
        
        
        
        
        
        
        
        
        
        
        
            
        
    
 
 
    
    
    
        
        
        
        
        
        
        
        
        `
        
            
            
        
    
 
 
    
    
        
        
        
        
        
 
        
        
        
            
        
    
 
 
 
    
    
        
        
    
 
 
    
    
        
        
        
        
    
 

核心配置文件详解

配置文件之envionment








    

        

          
            
               
            
            
            
            
            
        
    


    
        
    

配置文件之properties

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql"//localhost:3306/mybatis
jdbc:username=root
jdbc:password=123456

mybatis-config.xml











    

        

          
            
               
            
            
            
            
            
        
    


    
        
    

配置文件之typeAliases





    

    
    
    
    
        

    
   
    
    
    
    
        
        
            
            
            
            
                
                
                
                
                
                
                
            
        
    
    
    
        
    

核心配置文件之mapps




    


    
    
    
        

    
   
    
    
    
    
        
        
            
            
            
            
                
                
                
                
                
                
                
            
        
    
    
    

   
        
    

你可能感兴趣的:(开发框架,mybatis,学习,java)