文章目录
XML映射文件
概念:xml映射文件也是用来完成SQL的语句操作的。
一、如何使用XML映射
1、使用规范:
1、XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口防止在相同的包下(同包同名)。
2、XML映射文件的namespace属性与Mapper接口全限定名一致。
3、XML映射文件中sql语句的id不要Mapper几口中的方法名一致,并保持返回类型一致。
2、创建XML映射文件及使用步骤
①、创建XML映射文件,并且复合使用规范一:
②、在XML文件中写入固定的约束
约束代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
此约束可以在sql中文网中的入门页面中找到,官网地址:https://mybatis.p2hp.com/getting-started.html
③、创建Mapper方法
④、使用XML映射文件去写入sql语句
在写入sql语句之前需要使用创建两个标签:mapper、select,并给这两个的几个属性赋值。
标签(mapper和select)使用前所需要配置的属性(namespace 和 id、resultType)
mapper:
namespace:此属性是mapper标签的属性,需要给他指定Mapper映射接口的地址
select:
id:此属性是select标签的属性,需要给他指定的一个方法(在上面我们所设定的接口方法)
resultType:此属性是select标签的属性,需要给他返回结果的类型,这里可以写我们创建表的实体类
当创建完成这两个标签的配置之后就可以子啊select标签中直接写入sql中的select语句了。
代码如下:
<!--写入约束-->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--写入sql语句-->
<mapper namespace="com.chyb.test2.Mapper.EmpMapper">
<select id="ifXmlSelectEmp" resultType="com.chyb.test2.pojo.Emp">
select * from emp where gender = #{gender} and entrydate between #{start} and #{end}
and name like(concat('%',#{name},'%')) order by update_time desc
</select>
</mapper>
xml映射文件中不止select这一条sql语句可以用,这里我就只使用了select标签去查询,大家也可以使用其他的标签来去完成其余的sql语句列如(delecte、insert、update标签…)
⑤使用Test测试代码调用方法
// Xml查询
@Test
public void testXmlSelectEmp(){
List listEmp = userMapper.ifXmlSelectEmp((short) 1,LocalDate.of(2010,01,01),LocalDate.of(2020,01,01),"张");
listEmp.stream().forEach(emp ->{
System.out.println(emp);
});
}
测试代码运行结果如下:
二、MybatisX插件
在使用xml映射文件时我们可以下载一个名叫MybatisX的插件来去方便我们写xml语句
三、XML映射文件 VS Java注解:
学到这里肯定会有疑问,我们有Java注解为什么还要学XML映射文件,那肯定是各有所长各有所短,这里可以去Mybatis中的官网得到答案:
所以当sql与语句简单的时候,我们更倾向于写java注解,而当sql语句过于复杂的时候,我们更倾向于xml映射文件。