MyBatis框架实现简单的增删改查

MyBatis框架实现简单的增删改查

一、MyBatis架构

MyBatis框架实现简单的增删改查_第1张图片 1、MyBatis配置

​ 两大配置文件:核心配置文件SqlMapConfig.xml;映射配置文件Mapper.xml

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在
SqlMapConfig.xml中加载。

  1. 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
  2. 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
  3. mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是
    缓存执行器。
  4. Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。
    mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
  5. Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped
    Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设
    置参数。
  6. Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped
    Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

二、MyBatis配置文件

1、核心配置文件sqlMapConfig.xml

  
      
      
  


  
  
      
      
      
      
      

  

  
  
  
  
      
          
          
          
              
              
              
              
          
      
      
          
          
              
              
              
              
          
      
  
  
  
      
      
  

2、映射配置文件Mapper.xml

  
  
      insert into emp (name,age,sex) values (#{name},#{age},#{sex})
  
  
      update emp set name=#{name},age=#{age} where id=#{id}
  
  
      delete from emp where id=#{id}
  

3、数据库配置文件db.properties

jdbc.driver=com.mysql.jdbc.Driver
  jdbc.url=jdbc:mysql://localhost:3306/k9503?zeroDateTimeBehavior=convertToNull
  jdbc.username=root
  jdbc.password=171009

三、MyBatis配置文件主要配置内容

properties(属性:连接数据库四大参数)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)

四、java测试类

public class AppTest {
    SqlSession session=null;
    @Before//执行每一个test之前都会执行该方法
    public void init(){
        try {
            //加载核心配置文件
            InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
            //创建sqlSessionFactory工厂
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //构建工厂
            SqlSessionFactory factory = builder.build(is);
            //产生SQLSession对象
            session= factory.openSession();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Test
    public void selectAll() {
        List emps = session.getMapper(EmpMapper.class).selectAll();
        System.out.println(emps);
    }
    @Test
    public void add() {
        Emp emp = new Emp();
        emp.setName("鸿蒙");
        emp.setAge(23);
        emp.setSex("男");
        int i = session.getMapper(EmpMapper.class).add(emp);
        System.out.println(i);
    }
    @Test
    public void update() {
        Emp emp = new Emp();
        emp.setName("黎明");
        emp.setAge(23);
        emp.setId(43);
        int i = session.getMapper(EmpMapper.class).update(emp);
        System.out.println(i);
    }
    @Test
    public void delete() {
        int i = session.getMapper(EmpMapper.class).delete(43);
        System.out.println(i);
    }
    @After
    public void distory(){
        try{
            session.commit();//正常提交
        }catch (Exception e){
            session.rollback();//一旦出现异常 撤销 回滚
        }finally {
            session.close();//关闭资源
        }
    }
}

你可能感兴趣的:(MyBatis框架实现简单的增删改查)