刚开始学习Mybatis,试写一个例子:
工程结构
映射文件
表
测试类:
理一下流程:
根据配置文件获取到SqlSessionFactory,再通过SqlSessionFactory. openSession()获取到数据库操作对象sqlsession。session.getMapper(UserDao.class)可以得到接口的一个实现类,等到执行实现类中的方法时,会使用JDBC执行配置文件中的sql语句,执行成功后根据返回结果通过反射给实体类设置属性。
缓存:
<!--[if !supportLists]-->1、 <!--[endif]-->映射文件中的select语句将会被缓存;
<!--[if !supportLists]-->2、 <!--[endif]-->其他语句会刷新缓存
<!--[if !supportLists]-->3、 <!--[endif]-->缓存使用LRU(Least Recently Used)算法来回收
<!--[if !supportLists]-->4、 <!--[endif]-->缓存会根据指定的时间间隔来刷新
<!--[if !supportLists]-->5、 <!--[endif]-->缓存会存储1024个对象
缓存分为一级缓存和二级缓存:
一级缓存为sqlsession级别的:执行了查询语句就会缓存,查询条件相同才会使用缓存
二级缓存为SqlSessionFactory级别的:session.commit()之后才会缓存,查询条件相同才会使用缓存