MyBatis学习笔记(一)

MyBatis是什么

MyBatis的前身就是iBatis,iBatis本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为MyBatis。

MyBatis的主要作用是什么

  1. 根据 JDBC 规范建立与数据库的连接;
  2. 通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。

一个简单的demo

  1. 使用Spring Boot
  2. 使用本地的MySQL
  1. 先在数据库中建立一个表:
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
  1. 加入MyBatis相关的依赖



    4.0.0
    org.test
    MyBatisStudy
    0.0.1-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        1.2.8.RELEASE
         
    

    
        UTF-8
        1.7
    
    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.1.1
        
        
            mysql
            mysql-connector-java
        
    

这里用到了Spring Boot相关的依赖,可以看看mybatis-spring-boot-starter中的依赖关系


MyBatis学习笔记(一)_第1张图片
spring-boot-mybatis-starter.png
  1. 建立JavaBean的类User
package dao.domain;
/**
 * @author wuxuguang
 * users表所对应的实体类
 */
public class User {
    //实体类的属性和表的字段名称一一对应
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
}
  1. 建立数据库映射文件:




    
    
    

  1. 建立MyBatis的配置文件,并在这个配置文件中注册userMapper文件



    
        
            
            
            
                
                
                
                
            
        
    

    
        
        
    

  1. 写一个测试来进行测试
    public static void main(String[] args) throws IOException {
        //mybatis的配置文件
        String resource = "conf.xml";
        //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
//        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
        //构建sqlSession的工厂
//        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
        Reader reader = Resources.getResourceAsReader(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        /**
         * 映射sql的标识字符串,
         * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
         * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         */
        String statement = "dao.mapper.userMapper.getUser";//映射sql的标识字符串
        //执行查询返回一个唯一user对象的sql
        User user = session.selectOne(statement, 1);
        System.out.println(user);
    }

你可能感兴趣的:(MyBatis学习笔记(一))