
千峰Mybatis
蝶衣_疯魔
日拱一卒无有尽,功不唐捐终入海!
蝶衣_疯魔--来自《霸王别姬》人物程蝶衣--不疯魔不成活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
20.第三方缓存
第三方缓存是独立于一级、二级缓存以外的缓存,主要依赖于第三方的一些jar包ehcache是比较常用的缓存,可以缓存数据到内存和磁盘上,无需担心容量问题,一级、二级缓存在内存里添加第三方缓存:...原创 2020-01-14 09:44:32 · 394 阅读 · 0 评论 -
19.二级缓存
二级缓存比一级缓存的范围要广1.开启二级缓存需要在mybatis配置 文件中开启:2.在需要缓存的mapper上添加标签3.将结果集的实体类添加可序列化标志测试:需要关闭第一个,否者不会被放在缓存中:cache命中率是0.5,第一次查询数据库,剩下两次都是从缓存中拿的:2/3 =0.6666666666在select标签上关闭个别二级 缓存,useCache属性默认是true...原创 2020-01-14 09:23:07 · 144 阅读 · 0 评论 -
18.一级缓存
避免频繁的使用数据库,给数据库造成压力一级缓存 并不是一直不变的:在提交事务后,mybatis认为数据可能会改变,查询会重新查询在同一个sqlsession范围内存在一级缓存提交事务后(添加、删除 、更新 会清空缓存):...原创 2020-01-14 08:48:35 · 139 阅读 · 0 评论 -
17.注解
在Mybatis3支持注解:在接口上添加注解,不用在xml中编写SQL原创 2020-01-14 08:35:35 · 115 阅读 · 0 评论 -
16.分页插件PageHelper
1.导入PageHelper的jar包 <!-- 分页插件PageHelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId>...原创 2020-01-13 22:12:34 · 259 阅读 · 0 评论 -
15._Parameter参数和$
1.mybatis的规则:当parameterType的参数是java.lang 基本数据类型时,在sql语句中使用传入的参数判断,参数名不能随意命名需写成指定的格式**_parameter**还有一个必须使用_parameter的地方$在排序的时候会用到:以下未排序:desc倒序把#换成$符号,倒序正常...原创 2020-01-13 16:36:23 · 369 阅读 · 0 评论 -
14.动态sqlBind和Sql片段
简化我们操作的标签,起辅助作用1.模糊查询:两种方式1.1 mysql的拼接函数concatlike concat(’%’,#{name},’%’)1.2 使用bind标签sql与incloud标签配合使用,取唯一的id名,把多次使用的sql,可以提取出来,提高代码的复用性...原创 2020-01-13 16:17:01 · 339 阅读 · 0 评论 -
13、 动态SQL choose和foreach
1.choose\when\otherwise(相当于default)—就像java中的switch–case2.if与when的区别:if每个条件都需要判断,when是一组,只要第一个满足,后面的就不判断了。从上到下执行,当所有的条件不满足的时候,执行otherwise3.foreach标签:大多数情况用在子查询中,in 后面会跟一个列表通过集合的大小动态操作现在集合不是n...原创 2020-01-13 16:02:53 · 334 阅读 · 0 评论 -
12 动态SQL set和trim
标签动态的生成set关键字,智能的处理逗号。 :处理前缀and或or 后面有空格处理后缀原创 2020-01-13 10:08:26 · 190 阅读 · 0 评论 -
11.动态sql if和where
if标签test为true时,才会执行语句,where标签自动判断是否为空,加减and、or1.编写sql <resultMap id="empMap" type="Employee"> <id property="id" column="id"/> <result column="name" property="name"/...原创 2020-01-13 09:53:20 · 288 阅读 · 0 评论 -
10.一对多
1.修改Dept实体类:一对多sql语句:select d.id,d.name,e.salary,e.name,e.birthdayfrom dept dleft JOIN employee e on d.id=e.dept2.编写配置文件 <resultMap id="deptEmpMap" type="Dept"> <id proper...原创 2020-01-13 08:57:09 · 143 阅读 · 0 评论 -
9.关联查询:多对一
1.在mysql中的查询(多对一)SELECT e.*,d.name FROM employee as e INNER JOIN dept as d on d.id=e.dept;2.修改员工实体类3.编写查询语句:原创 2020-01-13 07:42:31 · 138 阅读 · 0 评论 -
8.结果集映射
使用MyBatis进行查询查询结果的映射两种映射,先看最简单的resultType映射:将查询结果映射到实体类中,前提是,字段名和实体属性名在忽略大小写后相同,才能映射。结果集当中的字段名忽略大小写后与实体类的属性名相同,就会映射在name不同时,查询出空null值高级映射:resultMap可以给每一个属性或字段指定映射关系编写测试方法:...原创 2020-01-12 14:33:14 · 319 阅读 · 0 评论 -
6.别名,7.删除数据
在mybatis的配置文件中给类取别名:简化操作类型别名,表示可以使用 Dept 来代替 pojo.Dept类型别名就是可以给类的全路径起一个简称在java中对一些常用的,(内置)都取了别名,例如:String是java.lang.string 也可以写成小写的string删除:测试:...原创 2020-01-12 13:46:39 · 137 阅读 · 0 评论 -
5.修改数据
使用update标签正常提交,添加删除修改都需要提交事务异常:回滚测试:原创 2020-01-12 13:29:18 · 173 阅读 · 0 评论 -
4.提取测试方法
除了业务代码,其他的获取会话以及关闭连接都是冗余的,使用@Before会在@Test方法执行前执行,@After会在@Test执行后执行@Before@After原创 2020-01-12 13:21:22 · 484 阅读 · 0 评论 -
3.使用Mybatis进行增删改
1.添加数据: insert标签用来执行insert语句。 语法与Mysql差不多,不同的是处理参数不同,使用#{}的方式,进行占位#{}自动进行预编译parameterType参数是基本类型当参数为一个时#{} 里面的参数名可以随意命名parameterType参数是对象当参数为多个时#{} 里面的参数名必须是属性名,读取属性时调用Dept的ge...原创 2020-01-12 10:28:08 · 215 阅读 · 0 评论 -
2.环境搭建
1 创建工程2 导入jar包:在pom文件中导入<dependencies> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybat...原创 2020-01-12 09:35:45 · 130 阅读 · 0 评论 -
01.课程介绍
《Mybatis》Mybatis的环境搭建MyBatis实现CRUDMyBatis高级映射动态sql分页插件PageHelperMyBatis注解:不再使用前面的xml方式开发,使用注解开发Mybatis缓存:提高查询效率...原创 2020-01-12 07:39:24 · 139 阅读 · 0 评论