随笔 - 1162
文章 - 0
评论 - 16
阅读 -
59万
随笔分类 - MyBatis
MyBatis框架
MyBatis(六)缓存机制 之 一级缓存
摘要:一、一级缓存介绍 1、一级缓存(local cache),即本地缓存,作用域默认为 SqlSession。当 Session flush 或 close 后,该 session 中的所有 Cache 将被清空。 2、本地缓存不能被关闭,但可以调用 clearCache() 来清空本地缓存,或者改变缓
阅读全文
MyBatis(六)缓存机制 之 缓存机制简介
摘要:MyBatis 缓存机制 1、MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。 2、MyBatis 系统中默认定义了两级缓存:一级缓存,二级缓存; 3、默认情况下,只有一级缓存(SqlSession 级别的缓存,也称为本地缓存)开启。 4、二级
阅读全文
MyBatis(五)动态SQL 之 批量操作(删除)
摘要:一、批量删除 删除记录的时候,大多时候都是根据记录的 id 去删除,所以当实现批量删除的时候,只要我们想法传进去多个 id 值就可以了。 思路: 第一种方式:delete from tbl_employee where id in (1,2,3) 第二种方式:delete from tbl_empl
阅读全文
MyBatis(五)动态SQL 之 批量操作(更新)
摘要:一、批量修改 批量修改,分为两种情况: (1)把每条数据修改为相同内容 方式一:update emp set .... where eid in (1,2,3); 方式二:update emp set .... where eid = 1 or eid = 2 or eid = 3; (2)把每条数
阅读全文
MyBatis(五)动态SQL 之 批量操作(插入)
摘要:一、批量插入 在MySQL 下面实现批量添加在 values 后面添加多个数据,用逗号分隔 insert into emp values(),(),(),() 但是 MySQL 与 Oracle 插入方式不一致,下面具体分析。 二、MySQL 实现批量插入 1、方式一 MySQL 支持 values
阅读全文
MyBatis(五)动态SQL 之 批量操作(查询)
摘要:一、批量操作——查询 在实际工作,我们需要根据情况进行批量查询,批量查询,可以全部查询出来,也可以根据其他查询查询出来。 1、查询全部的数据 (1)在接口中声明方法 //查询所有对象,返回 list 集合 public List<Employee> getAllEmps(); (2)在对应的 xml
阅读全文
MyBatis(五)动态SQL 之 sql 标签(重用片段)
摘要:一、sql 标签 SQL 标签是用于抽取可重用的 SQL 片段,将相同的,使用频繁的 SQL 片段抽取出来,单独定义,方便多次引用。 抽取可重用的sql片段。方便后面引用 (1)sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用 (2)include来引用已经抽取的sql: (3)in
阅读全文
MyBatis(五)动态SQL 之 bind绑定
摘要:一、bind 标签 bind作用:可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值。 在接口中声明方法: public List<Employee> getEmpsTestBind(Employee employee); 在对应xml文件中配置: <!-- bind 将OGNL表达
阅读全文
MyBatis(五)动态SQL 之 内置参数:_parameter&_databaseId
摘要:一、两个内置参数 不只是方法传递过来的参数可以被用来判断,取值。 mybatis默认还有两个内置参数: (1)_parameter:代表整个参数 单个参数:_parameter就是这个参数 多个参数:参数会被封装为一个map;_parameter 就是代表这个 map (2)_databaseId:
阅读全文
MyBatis(五)动态SQL 之 foreach 标签
摘要:一、foreach 标签 foreach:主要用于循环迭代 语法格式: <foreach collection="" item="" open="" close="" separator="" index=""></foreach> foreach 对一个数组或集合进行遍历 collection:指
阅读全文
MyBatis(五)动态SQL 之 set 标签
摘要:一、set 标签 set 主要是用于解决修改操作中 SQL 语句中可能多出逗号的问题。 在接口中声明方法: //修改员工信息 public void updateEmpByCondition(Employee employee); 在对应的 xml 中的配置: 1、使用${} 方式取值 <!-- p
阅读全文
MyBatis(五)动态SQL 之 trim 标签
摘要:一、trim 标签 语法: <trim prefix="" suffix="" prefixOverrides="" suffixOverrides="">:截取并拼接 属性说明: trim 标签用于截取并拼接,即可以在条件判断完的 SQL 语句前后,添加或者去掉指定的字符。 prefix:(添加前
阅读全文
MyBatis(五)动态SQL 之 choose(when、otherwise)标签
摘要:一、choose 标签 choose 主要用于分支判断,类似于 java 中带了 break的 switch...case,只会满足所有分支中的一个。 语法格式: <choose> <when test=""> 通过test表达式拼接SQL <when test=""> <otherwise></o
阅读全文
MyBatis(五)动态SQL 之 if 与 where 标签
摘要:一、SQL 多条件来查询 1、在 EmployeeMapper 接口中声明方法 //根据id, lastNname, age, sex多条件查询员工信息 public List<Emp> getEmpListByMoreCondition(Emp emp); 2、在 EmployeeMapper.x
阅读全文
MyBatis(五)动态SQL 之 动态SQL简介
摘要:一、动态 SQL 简介 1、动态 SQL 是 MyBatis 强大特性之一。极大的简化拼接 SQL 的操作; 2、动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似; 3、MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作 if 标签 choose(when,
阅读全文
MyBatis(四)映射文件 之 resultMap:鉴别器
摘要:一、鉴别器 鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 <discriminator javaType=""> <case value=""></case> </discriminator> 案例: 封装 Employee: 如果查出的是女生:
阅读全文
MyBatis(四)映射文件 之 分步查询与懒加载
摘要:一、分步查询 1、分步查询 在前面已经使用了 association 和 collection 的分步查询。 <resultMap type="Dept" id="deptMapStep"> <id column="did" property="did"/> <result column="dnam
阅读全文