学习mybatis3的第6天
学习与select,insert,delete,update同级的标签-sql标签
sql标签是用来抽取可重用的sql片段。方便后面引用。有些查询或者插入的场景,那些需要写的字段很多,经常要重复写。
1、接口里面的方法。
public void addEmps(@Param("emps") List<Employee> emps);
2、之前的sql映射文件的编写。
<insert id="addEmps">
INSERT INTO `tbl_employee`(last_name,email,gender,d_id)
VALUES
<foreach collection="emps" item="emp" separator=",">
(#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id})
</foreach>
</insert>
3、现在的sql映射文件:
<insert id="addEmps">
INSERT INTO `tbl_employee`(
<include refid="insertCol"></include>
)
VALUES
<foreach collection="emps" item="emp" separator=",">
(#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id})
</foreach>
</insert>
<sql id="insertCol">
last_name,email,gender,d_id
</sql>
Mybatis的缓存机制
Mybatis里面有:
一级缓存和二级缓存。
一级缓存(本地缓存,SqlSession级别)
与数据库的同一次会话期间查询道德数据会放到本地缓存中
以后如果要获取相同的数据,直接从本地缓存拿,就没有必要再去执行sql,去访问DB了。