随笔分类 -  MyBatis学习笔记

摘要:<cache>中相关属性 在mapper配置文件中添加的cache标签可以设置一些属性: ①eviction属性:缓存回收策略,默认的是 LRU。 LRU(Least Recently Used) – 最近最少使用的:移除最长时间不被使用的对象。 FIFO(First in First out) – 阅读全文
posted @ 2022-09-15 16:39 别亦难 阅读(120) 评论(0) 推荐(0) 编辑
摘要:MyBatis的二级缓存(实现需要4个条件)* MyBatis的一级缓存是SqlSessionFactory级别的,* 即通过同一个SqlSessionFactory所获取的SqlSession对象* 查询的数据会被缓存,在通过同一个SqlSessionFactory所获取的SqlSession* 阅读全文
posted @ 2022-09-15 16:39 别亦难 阅读(470) 评论(0) 推荐(0) 编辑
摘要:MyBatis的一级缓存:(默认开启)MyBatis的一级缓存是SqlSession级别的即通过同一个SqlSession查询的数据会被缓存于SqlSession的缓存中再次使用同一条SqlSession查询同一条数据会从缓存中获取(增加了查询效率) 使一级缓存失效的4种情况:* 1) 不同的Sql 阅读全文
posted @ 2022-09-15 16:39 别亦难 阅读(223) 评论(0) 推荐(0) 编辑
摘要:可以记录一段sql,在需要用的地方使用include标签进行引用优点:(可设置*避免了*传入mysql中再次被解析,从而加快执行效率) 设置sql片段(代替*) <sql id="empColumns"> emp_id,emp_name,age,gender,dept_id </sql> 引用sql 阅读全文
posted @ 2022-09-15 16:38 别亦难 阅读(25) 评论(0) 推荐(0) 编辑
摘要:可分别用数组或集合进行批量添加和删除 collection:设置要循环的数组或集合item:用一个字符串表示数组或集合中的每一个数据separator:设置每次循环的数据之间的分隔符(会在设置的分隔符前后加 空格)open:循环的所有内容以什么开始(仅适用于批量删除)close:循环的所以内容以什么 阅读全文
posted @ 2022-09-15 16:37 别亦难 阅读(265) 评论(0) 推荐(0) 编辑
摘要:动态SQL1.if 通过test属性中的表达式判断标签中的内容是否有效(是否会拼接到sql中) <select id="getEmpByConditionOne" resultType="Emp"> select * from t_emp where 1=1 <if test="empName!=n 阅读全文
posted @ 2022-09-15 16:37 别亦难 阅读(636) 评论(0) 推荐(0) 编辑
摘要:处理一对多的映射关系:1.collection标签类似于association的模板模板 <resultMap id="deptAndEmpResultMap" type="Dept"> <id column="dept_id" property="deptId"></id> <result col 阅读全文
posted @ 2022-09-15 16:36 别亦难 阅读(29) 评论(0) 推荐(0) 编辑
摘要:优点:可以实现延迟加载,减少当前内存的消耗 开启延迟加载延迟加载与两个全局配置有关(放在mybatis-config中的settings(全局配置)里面) 如果只是要得到延迟加载的效果,其实将lazyLoadingEnabled开启就能够做到1.lazyLoadingEnabled(默认关闭) <s 阅读全文
posted @ 2022-09-15 16:36 别亦难 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1.为查询的字段设置别名,和属性名保持一致 select emp_id empId,emp_name empName,age,gender from t_emp where emp_id=#{empId} 2.当字段符合MySQL的要求使用_,而属性符合Java的要求使用驼峰此时可以在MyBatis 阅读全文
posted @ 2022-09-15 16:35 别亦难 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1.级联方式处理关键:明白字段应该映射哪一个属性 也就是将主表中主键为id,关联表中的要查询的值通过column对应数据库中名字,property对应实体类中的名字进行映射 <resultMap id="empAndDeptResultMapOne" type="Emp"> <id column=" 阅读全文
posted @ 2022-09-15 16:35 别亦难 阅读(20) 评论(0) 推荐(0) 编辑
摘要:select * from t_user where username like '%#{mohu}%' 中的#{mohu}会被解析为?号,不会被解析为占位符 解决方案: 1:'%${mohu}%' 用${}字符串拼接的方式代替占位符赋值 2:concat('%',#{mohu},'%') 在sql 阅读全文
posted @ 2022-09-15 16:33 别亦难 阅读(988) 评论(0) 推荐(0) 编辑
摘要:* 若sql语句查询的结果为多条时,* 一定不能以实体类类型作为方法的返回值* 否则会抛出异常TooManyResultsException * 若sql语句查询的结果为一条时* 此时可以以实体类作为返回值,* 也可以用list集合类型作为方法的返回值 * sqlSession在底层调用方法时,* 阅读全文
posted @ 2022-09-15 16:33 别亦难 阅读(32) 评论(0) 推荐(0) 编辑
摘要:* 查询所有的用户信息为一个map集合* 若查询的数据有多条是,并且要将每条数据转化为map集合* 此时有两种解决方案:(第一种list集合用的多)** 1.将mapper接口方法的返回值设置为泛型是map的list集合* List<Map<String,Object>>getAllUserToMa 阅读全文
posted @ 2022-09-15 16:32 别亦难 阅读(504) 评论(0) 推荐(1) 编辑
摘要:* MyBatis获取参数值的两种方式:#{}和${}* #{}本质是占位符赋值,${}的本质是字符串拼接* * 1 若mapper接口方法的参数为单个的字面量类型* 此时可以通过#{}和${}以任意的内容获取参数值,* 但尽量把传入参数名放入{}内,一定要注意${}的单引号问题** 2 若mapp 阅读全文
posted @ 2022-09-15 16:28 别亦难 阅读(122) 评论(0) 推荐(0) 编辑

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