一.映射Mapper
接口方法映射到对应的SQL
Mapper.xml的命名空间名称就是Maper接口的全限定名
Mapper接口上也可以写SQL(不建议这么做)
1.employeeMapper.xml
...<select id="findAll" resultType="employee">
...
</select>
2.EmployeeMapper
package cn.itsource._02_mapper.mapper;
public interface EmployeeMapper {
void save(Employee employee);
// @Select(“select * from employee”)
List findAll();
}
3.调用 Mapper的方法
SqlSession session = MyBatisUtil.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
mapper.findAll().forEach(e -> System.out.println(e));
二.高级查询
准备一个Query对象(封装所有条件)
模糊查询 concat("%",#{name},"%")
遇到特殊符号 1.转义 < 2.CDATA段 <![CDATA[...]]>
使用where标签(第一个and变成where)
if中有多个条件使用 and/or 进行关联
如果出现相就的代码,可以单独抽取sql标签,引用include即可
select * from employee and name like concat("%",#{name},"%") and age >= #{minAge} <![CDATA[ and age<=#{maxAge} ]]>
三 批量删除,添加,动态修改
3.1 批量删除
首先知道sql delete from 表名 where id in (?,?,..)
collection="":代表你要循环的是什么? array/list
如果传过来的是数据,写array(集合就写list)
item:循环的每一个数据
open:拼接字符串以什么开始