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