Springboot Mybatis XML配置文件
XML配置文件操作
package com.wzb.MybatisXmlExercise20240925;public class Xml {public static void main(String[] args) {System.out.println("Hello XML");}// XML配置文件规范// 使用Mybatis注解的方式的确可以操作数据库,但大多只能完成增删改查等简单的功能,若需要实现复杂的SQL功能,则需要// 使用XML配置文件映射语句————也就是将SQL语句写在XML配置文件中// 在Mybatis中使用XML映射文件开发,需要符合特定规范:// 1.XML映射文件名必须和Mapper接口严格相等,并且将XML映射文件和Mapper接口放置在相同的包下面(同包同名,必须严格相同)// XML文件一般都是放在resource目录之下的,需要在resource目录中创建和Mapper接口包同包同名的目录用于存放XML文件// 切记:因为在resource目录中无法直接创建软件包,所以说要创建目录,并用/分隔其层级关系// 2.XML映射文件的namespace属性必须和Mapper接口的全限定名完全一致// 3.XML映射文件中的SQL语句的id必须和Mapper接口的方法名一致,返回值也需要一致;都需要严格相等// XML配置文件和注解需要合理使用,在日常开发中,若没有特别要求,那么用注解完成一些简单的增删改查;用XML配置文件完成复杂的SQL功能}
XMLMapper
package com.wzb.MybatisXmlExercise20240925;import com.wzb.Pojo20240925.Emp;
import org.apache.ibatis.annotations.Mapper;import java.time.LocalDate;
import java.util.List;@Mapper
public interface XmlMapper {public List<Emp> conditionSelect(String name, short gender, LocalDate begin, LocalDate end);}
XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wzb.MybatisXmlExercise20240925.XmlMapper"><!--全类名就是全部包名 + 类名--><!--XML映射文件中的SQL语句的id必须和Mapper接口中的方法名完全一致,并且保持返回值一致--><!--完成条件查询--><select id = "conditionSelect" resultType="com.wzb.Pojo20240925.Emp">select * from empwhere name like concat('%', #{name}, '%')and gender = #{gender}and entrydate between #{begin} and #{end}order by update_time desc</select><!-- 但是有一个弊端,可见中间都是and连接的,那么当后面的参数(如gender)都是null的时候,即使传递了前面的参数(如name)也不会有查询结果,因为不管传递参数没有,都会拼接进SQL语句,这不符合业务逻辑————传递了参数,才进行拼接;若没有参数,则不拼接 --></mapper>