MyBatis环境搭建和入门案例(以及部分坑)

使用Mybatis思路,首先用mybaits.xml配置环境,然后创建一个dao下的接口后,思路是用mybatis提供的配置解决连接数据库,查询,封装domain中的对象。所以,配置映射路径,然后在对应的文件夹下,写IUserDao.xml(接口对应的配置文件),namspace对应全类名,内部标签对应方法。而后,就算完成了环境的配置。MyBatis环境搭建和入门案例(以及部分坑)_第1张图片MyBatis环境搭建和入门案例(以及部分坑)_第2张图片

前提:导入依赖 与 Log4j.properties文件
MyBatis环境搭建和入门案例(以及部分坑)_第3张图片
在这里插入图片描述这一段放在properties标签中,
以下是log4j.properties文件内的内容

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
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 = [%-5p] %d{
     yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{
     yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{
     yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

接下来进入主题

  1. 配置主配置MyBatis环境搭建和入门案例(以及部分坑)_第4张图片其中POOLED暂时不理解
  2. 完成接口创建MyBatis环境搭建和入门案例(以及部分坑)_第5张图片
    3.插入一段遗忘的知识:关于建表:MyBatis环境搭建和入门案例(以及部分坑)_第6张图片关于 插入日期字段:在这里插入图片描述如果,日期没有家引号,那么会导致插入的时间失败。
    3.由于没用实现接口类,所以需要在配置中加入映射路径:MyBatis环境搭建和入门案例(以及部分坑)_第7张图片注意:包名与包名之间是/而不是.连接。
    注意:要在Resouces中创建与之对应的路径,唯一区别是一个是xml一个是接口类。
    4.在对应的路径下,填写配置完成通过配置实现dao层接口类。
    MyBatis环境搭建和入门案例(以及部分坑)_第8张图片注意:sql语句后加不加;不一定,就我的经验,加与不加都一样,但是有些人加了会报错。
    注意:namspace必须是接口的全类名,id是方法名,resultType是查询结果封装类的包装类
    5.至此,环境搭建完成,测试结果:
    1.读取配置文件,此处有两个方法读取配置文件,第一种是采用
InputStream in = Resources.getResourceAsStream("mybatisConfig.xml");

第二种是采用

InputStream in = MybatisTest.class.getClassLoader().getResourceAsStream("mybatisConfig.xml");

区别在于,Resources中其实就是封装了第二种方式,其实就是多了一层封装
2.创建一个可以生产可以利用配置文件连接数据库,进行查询的对象的工厂。

  SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);

建工厂3.从工厂中获取session对象

 SqlSession session = factory.openSession();
    4.利用session对象获取接口类的经过代理类加强过后的对象Mapper:
IUserDao dao = session.getMapper(IUserDao.class);
    5.执行mapper方法:
        List<User> all = dao.findAll();
        for (User user : all) {
     
            System.out.println(user);
        }

如果遗漏这一步,就会出现控制台没用输出的情况
6.释放资源:


        in.close();
        session.close();

总览MyBatis环境搭建和入门案例(以及部分坑)_第9张图片

后续补充更新

你可能感兴趣的:(MyBatis环境搭建和入门案例(以及部分坑))