MyBatis(-)

刚开始学习Mybatis,试写一个例子:

工程结构

 
MyBatis(-)_第1张图片
 

 

 

映射文件

 
MyBatis(-)_第2张图片
 

 

 

 
MyBatis(-)_第3张图片
 

 

 

测试类:

 
MyBatis(-)_第4张图片
 

 

 

 

理一下流程:

根据配置文件获取到SqlSessionFactory,再通过SqlSessionFactory. openSession()获取到数据库操作对象sqlsessionsession.getMapper(UserDao.class)可以得到接口的一个实现类,等到执行实现类中的方法时,会使用JDBC执行配置文件中的sql语句,执行成功后根据返回结果通过反射给实体类设置属性。

 

 

缓存:

<!--[if !supportLists]-->1、  <!--[endif]-->映射文件中的select语句将会被缓存;

<!--[if !supportLists]-->2、  <!--[endif]-->其他语句会刷新缓存

<!--[if !supportLists]-->3、  <!--[endif]-->缓存使用LRULeast Recently Used)算法来回收

<!--[if !supportLists]-->4、  <!--[endif]-->缓存会根据指定的时间间隔来刷新

<!--[if !supportLists]-->5、  <!--[endif]-->缓存会存储1024个对象



 

缓存分为一级缓存和二级缓存:

一级缓存为sqlsession级别的:执行了查询语句就会缓存,查询条件相同才会使用缓存

 

二级缓存为SqlSessionFactory级别的:session.commit()之后才会缓存,查询条件相同才会使用缓存

你可能感兴趣的:(mybatis)