当前位置: 首页 > news >正文

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>

 

 


http://www.mrgr.cn/news/36365.html

相关文章:

  • 毕业设计选题:基于ssm+vue+uniapp的自助购药小程序
  • 快手一面:给定一棵二叉树,要求将其转换为其镜像?
  • python库 | lxml库
  • 使用AI进行需求分析的案例研究
  • 进制数知识(2)—— 浮点数在内存中的存储 和 易混淆的二进制知识总结
  • 深圳前海壹方汇的免费停车点探寻
  • Java查找算法——(四)分块查找(完整详解,附有代码+案例)
  • 【mac开发入坑指南】分屏mac程序坞移动到另外一个屏幕
  • mysql学习教程,从入门到精通,SQL FULL JOIN 语句(25)
  • alpine安装docker踩坑记
  • 链表入门(LeetCode题目)
  • Claude 的上下文检索功能提升了 RAG 准确率,这会是人工智能革命?
  • C++深入学习string类成员函数(1):默认与迭代
  • yolov8训练数据集——labelme的json文件转txt文件
  • Keyence——PLC__Mitsubishi_PLC__Read_Write_Ascii
  • 遗忘的数学(拉格朗日乘子法、牛顿法)
  • 【Vision Transformer】辅助理解笔记
  • C++进阶——二叉搜索树
  • kibana开启访问登录认证
  • 如何在 Vue 3 项目中使用 Vuex 进行状态管理?