Mybatis的开发有两种方式:
注解
XML配置文件
通过XML配置文件的形式来配置SQL语句,这份儿XML配置文件在MyBatis当中也称为XML映射文件。
导学:在MyBatis当中如何来定义一份儿XML映射文件?
在MyBatis当中,定义XML映射文件它是有一定的规范的。
XML映射文件的名称与Mapper接口名称保持一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)- 在项目开发当中,一般都是一个接口对应一份儿映射配置文件;
XML映射文件的namespace{命名空间}属性与Mapper接口的全限定名{包名+接口名}一致;
XML映射文件中SQL语句的id与Mapper接口中的方法名一致,并保持返回类型一致。
- 在标准的Maven项目结构当中,java目录下存放的都是Java的源代码,而resources这个目录下存放的才是配置文件。
- 在映射配置文件当中来定义SQL语句。
resultType属性,指的是查询返回的单条记录所封装的类型。
注意:我们想要的包结构是一级一级的目录,如果用点来分隔,就会当成一个文件,目录之前的 分隔我们要使用斜杠/来分隔。
打开磁盘目录验证:
目录结构:
- XML映射文件中的dtd约束,直接从MyBatis官网复制即可
配置XML文件的约束:
配置:XML映射文件的namespace属性为Mapper接口全限定名
配置:XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致
Mapper接口方法:
package com.gch.mapper;
import com.gch.pojo.Emp;
import org.apache.ibatis.annotations.*;
import java.time.LocalDate;
import java.util.List;
/**
加上@Mapper注解就代表程序在运行时会自动的创建该接口的代理对象,并且会将这个代理对象放入到IOC容器当中
*/
@Mapper
public interface EmpMapper {
/**
* 条件查询员工信息
* 基于XML映射文件的形式来配置SQL语句
* @param name => 查询的姓名
* @param gender => 查询的性别
* @param begin => 查询的入职时间
* @param end => 查询的离职时间
* @return => 把查询返回的多条记录封装到List集合里面
*/
public List select(String name, short gender, LocalDate begin, LocalDate end);
}
测试类:
package com.gch;
import com.gch.mapper.EmpMapper;
@SpringBootTest
class SpringbootMybatisCrudApplicationTests {
/**
从Spring的IOC容器当中,获取类型是EmpMapper的对象并注入
*/
@Autowired
private EmpMapper empMapper;
/**
* 条件查询
*/
@Test
public void testSelectList() {
// 调用查询方法查询员工信息,并将查询返回的结果使用List集合接收
List list = empMapper.select("张", (short) 1,
LocalDate.of(2010, 01, 01), LocalDate.of(2020, 01, 01));
// 遍历集合输出
list.stream().forEach(s ->{
System.out.println(s);
});
}
}
运行测试类,执行结果:
思考:在定义XML映射文件的时候,为什么要遵守这三点规范?
思考:通过Mapper接口中的接口方法怎么找到与之关联的SQL语句?
MybatisX的安装:
如图:
可以通过MybatisX快速定位:
MyBatisX的使用在后续学习中会继续分享...
学习了Mybatis中XML配置文件的开发方式了,大家可能会存在一个疑问:到底是使用注解方式开发还是使用XML方式开发?
官方说明:入门_MyBatis中文网
结论: