邹瑞20201118

总结

流程

3

总结:我们不难看出无论是创建代理对象还是直接使用提供的CRUD方法,其本质都是得到Connection 对象,执行对应的sql语句,最终返回封装结果集。只是注解方式和xml方式在传递sql语句和返回值类 型的方式上有区别而已。

mybatis 环境搭建步骤

  1. 创建 maven 工程
  2. 导入相关依赖
  3. 编写代码(实体类和持久层接口)
  4. 编写映射配置文件
  5. 编写 SqlMapConfig.xml
  6. 编写测试类

创建日志文件

在mybatis中可以使用log4j来记录执行日志,并输出。在src/resources目录下创建 log4j.properties 文件,具体如下:

#日志级别为debug log4j.rootLogger=debug,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

#写文件,我们目前不需要,注释掉 #log4j.appender.file=org.apache.log4j.RollingFileAppender #log4j.appender.file.MaxFileSize=1MB #log4j.appender.file.MaxBackupIndex=1024 #log4j.appender.file.File=c:/eshop.html #log4j.appender.file.layout=org.apache.log4j.HTMLLayout #log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%-5p] %m%n%n

基于代理 Dao 实现 CRUD 操作

原理差不多

  1. 在持久层接口中添加 方法

UserInfoModel findById(String id);

  1. 在用户的映射配置文件中配置
  2. 在测试类添加测试
    public class IUserInfoDaoTest {
    private InputStream in ;
    private SqlSessionFactory factory;
    private SqlSession session;
    private IUserInfoDao userDao;
    @Before//在测试方法执行之前执行
    public void init()throws Exception {
    //1.读取配置文件
    in = Resources.getResourceAsStream("SqlMapConfig.xml");
    //2.创建构建者对象
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3.创建 SqlSession 工厂对象
    factory = builder.build(in);
    //4.创建 SqlSession 对象
    session = factory.openSession();
    //5.创建 Dao 的代理对象
    userDao = session.getMapper(IUserInfoDao.class);
    }
    @Test
    public void findById() {
    //6.执行操作
    String id = "34a2d2ab2ee946a49ab4a87e7f16cfb6";
    UserInfoModel user = userDao.findById(id);
    System.out.println(user);
    }
    }

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1