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

使用Mybatis思路,首先用mybaits.xml配置环境,然后创建一个dao下的接口后,思路是用mybatis提供的配置解决连接数据库,查询,封装domain中的对象。所以,配置映射路径,然后在对应的文件夹下,写IUserDao.xml(接口对应的配置文件),namspace对应全类名,内部标签对应方法。而后,就算完成了环境的配置。搭建注意事项

前提:导入依赖 与 Log4j.properties文件
依赖文件
在这里插入图片描述这一段放在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. 配置主配置主配置其中POOLED暂时不理解
  2. 完成接口创建接口
    3.插入一段遗忘的知识:关于建表:在这里插入图片描述关于 插入日期字段:在这里插入图片描述如果,日期没有家引号,那么会导致插入的时间失败。
    3.由于没用实现接口类,所以需要在配置中加入映射路径:映射注意:包名与包名之间是/而不是.连接。
    注意:要在Resouces中创建与之对应的路径,唯一区别是一个是xml一个是接口类。
    4.在对应的路径下,填写配置完成通过配置实现dao层接口类。
    配置实现接口注意: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();

总览总览

后续补充更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值