MyBatis
冥加
语言是窗户,否则就是墙
展开
-
说说MyBatis插件执行顺序(PageHelper 5 问题)
之前因为觉得spring cache的使用比较麻烦,所以弄了个简单的MyBatisCache自动缓存插件,在测试过程中,PageHelper插件的版本变化引出了插件执行顺序的问题: 起因:PageHelper v4.x和v5.x在实现上进行了改变,PageHelper主要是拦截Executor的query方法,为select语句添加物理分页语句,问题就出在query方法上,query方法有两个:...原创 2018-03-23 11:33:04 · 6172 阅读 · 0 评论 -
通过Mybatis的拦截机制实现自动缓存
目前项目中用到Spring的地方很多,很多功能都能在sping中找到解决方案,正如我现在想要说的缓存实现,Spring Cache已经为我们提供了很好的解决方案,并且提供了默认实现,增加几个注解立刻就能使用,确实挺好,但是在实际使用过程中还是觉得不太方便,主要就是因为要保持缓存注解方法间的名称保持一致,在@CacheEvict中需要指定所有需要清除的缓存信息(通过name,key等...原创 2018-03-08 17:17:27 · 2410 阅读 · 0 评论 -
MyBatis Collection小记—— 关联查询、递归查询、多字段关联
经常会用到mybatis的Collection标签来做级联查询或递归查询,现通过一个伪例来简单的说明一下使用中的关键点: 首先先列出三个表,给出一个场景:1,角色表t_role( id,name ) 2,菜单表t_menu( id, name, pid )菜单表是个有个pid,指向上级菜单的id,所以是个树形表3,角色菜单关联表t_role_menu( role_id, menu_i...原创 2018-04-25 18:30:09 · 2424 阅读 · 2 评论 -
MyBatis foreach小记—— 批量update
经常会用到mybatis的foreach标签来做循环操作,可以做一些sql的拼装等,标签的属性如下:collection 循环对象集合;item 每个迭代对象的别名;index 迭代索引值;open 循环语句的开始内容;separator 每次迭代之间的分隔符;close 循环语句的结束内容; 以mysql为例,批量操作的sql最常见就是通过in语句、批量insert语句等:1, d...原创 2018-04-27 15:45:53 · 16111 阅读 · 4 评论