随笔分类 -  Mybatis

摘要:业务功能: 把一个表按照月份分为12个,命名user_01、user_02、....user_12。 Mapper.xml中只配置一个SQL: select * from user where age = #{age} 输入当前月份查询的时候,自动把逻辑表名改成对应的月份表。例如输入202005,此 阅读全文
posted @ 2020-07-10 14:51 snail灬 阅读(169) 评论(0) 推荐(0) 编辑
摘要:插件编写要求(分页插件PageHelper) 自定义插件需要做到三点 1)实现Interceptor接口 public class PageInterceptor implements Interceptor{} 2)实现对应的方法。最关键的是intercept()方法里面是拦截的逻辑,需要增强的代 阅读全文
posted @ 2020-07-09 18:45 snail灬 阅读(380) 评论(0) 推荐(0) 编辑
摘要:6、SimpleExecutor.doQuery() 1)创建StatementHandler 在 configuration.newStatementHandler()中,new一个newStatementHandler,先得到RoutingStatementHandler。 RoutingSta 阅读全文
posted @ 2020-07-06 15:02 snail灬 阅读(110) 评论(0) 推荐(0) 编辑
摘要:五、Mybatis核心对象 阅读全文
posted @ 2020-07-06 14:53 snail灬 阅读(89) 评论(0) 推荐(0) 编辑
摘要:四、执行SQL User user = mapper.selectUser(1); 由于Mapper都是JDK动态代理对象,所以任意的方法都是执行触发管理类MapperProxy的invoke()方法。 QA: 1.引入MapperProxy为了解决什么问题?硬编码和编译时检查问题。他需要做的事情是 阅读全文
posted @ 2020-07-06 14:47 snail灬 阅读(134) 评论(0) 推荐(0) 编辑
摘要:三、获取Mapper对象 在老的版本中,DefaultSqlSession的selectOne()方法可以直接根据Mapper.xml中的StatementID,找到SQL执行。但是这种方法属于硬编码,不以查找和修改。 并且如果是参数传入错误,在编译阶段也是不会报错的,不利于提前发现问题。 User 阅读全文
posted @ 2020-07-06 14:38 snail灬 阅读(148) 评论(0) 推荐(0) 编辑
摘要:程序每一次操作数据库,都需要创建一个会话,我们用openSession()方法来创建。 SqlSession session = sqlSessionFactory.openSession(); 这里的sqlSessionFactory用到的是默认实现类,在openSessionFromDataSo 阅读全文
posted @ 2020-07-06 14:31 snail灬 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一、配置解析过程 Mybatis配置解析的过程分为两种文件。一个是mybatis-config.xml全局文件。另外一个就是所有的Mapper.xml文件,也包含在Mapper接口类上的定义的注解。 如何解析的? SqlSessionFactory sqlSessionFactory = new S 阅读全文
posted @ 2020-06-22 18:39 snail灬 阅读(432) 评论(0) 推荐(0) 编辑
摘要:缓存 缓存是一般ORM框架都有的功能,目的就是提高查询的效率和减少数据库的压力。 缓存结构 Mybatis源码中与缓存相关的类都在cache包中,其中有一个Cache接口,默认实现类PerpetualCache,他是由HashMap实现的,是基础缓存。 Mybatis的缓存功能是采用装饰器模式实现的 阅读全文
posted @ 2020-06-19 12:03 snail灬 阅读(153) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示