【学习笔记】初识Mybatis

什么是Mybtis

  • MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(普通的旧Java对象)映射到数据库记录。
  • MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO为数据库中的记录。< w3school>

Mybatis入门

安装
  • 普通项目中使用Mybatis:添加mybatis.xxx.jar到类加载路径
  • Maven项目中在pom.xml中添加依赖:

        org.mybatis
        mybatis
        3.5.3

简单案例
  1. 创建简单Java类
public class User {
    Integer userId;
    String userName;
    String userPassword;
    String userPhone;
    String userSex;
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserPassword() {
        return userPassword;
    }
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }
    public String getUserPhone() {
        return userPhone;
    }
    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }
}
  1. 从XML中创建SqlSessionFactory
    SqlSessionFactory是mybatis应用的核心,其实例可以由SqlSessionFactoryBuilder获取,而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  1. 配置核心配置文件mybaties-config.xml



    
    
    
        
            
            
                
                
                
                
            
        
    
    
        
    

注:只有添加了外部资源db.properties才可使用${}调用,db.properties中的内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbuser?useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=123456

4.配置映射文件userMapper.xml




    

注:resultType使用类的全路径,并且语句查询结果需要和字段名等同
5. 从 SqlSessionFactory 中获取 SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("selectUser", 1);
System.out.println(user.toString());
sqlSession.close();

注:selectOne中前唯一标识为xxxMapper中的id,建议加上namespace中的内容
6. 代码执行:
代码执行成功
7. 修改部分,实现接口编程
原因: T selectOne(String var1, Object var2);方法第二个参数不确定
创建接口:

public interface usermapper {
    public User getUser(Integer id);
}

修改配置映射:




    

修改部分:namespace修改为接口的全路径;select的修改为接口方法名
优点:实现接口编程,不用写实现类

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