MyBatis——XML配置文件

在MyBatis中,对于简单的SQL语句可以直接通过注解配置SQL语句,但是遇到复杂的SQL语句就不是那么方便了(比如说动态SQL),此时就需要使用XML配置文件配置SQL语句。

XML配置文件默认规则

有了XML配置文件之后,定义Mapper接口的时候就不需要再使用注解了,以下是XML配置文件的定义规则:

1.XML映射文件的名称必须和对应的Mapper接口完全、严格一致 ,并且XML映射文件必须和Mapper接口放置在相同的包下 (必须同包同名)。

名称完全一样,并且同包同名。

2.XML映射文件中的namespace属性必须和Mapper接口的全限定名完全一致。

namespace的属性和Mapper接口的全限定名一致。

3.XML映射文件中的SQL语句的id必须和Mapper接口中的方法名完全一致返回类型 也必须完全一致。

XML中需要引入头信息(约束),可以直接在Mybatis官方文档中拷贝:

xml 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="your mapper">
<mapper>

SQL语句的id和Mapper中的方法名完全一致,返回类型也完全一致(注意,此处返回类型完全一致是指这些数据封装的对象是一致的,都是User实体对象)。

(注意,这里方法名下的红色波浪线不是报错,只是一个警告,因为这个项目是学习项目,里面有很多模块,模块中有很多同名的包和同名的类,idea在扫描的时候发现了这个问题,报了警告,实际上运行是没问题的。)

使用XML配置文件实现查询全部用户

在mapper接口中的代码十分简单:

csharp 复制代码
public List<User> selectAll();

XML文件中定义的SQL会查询user表中的每一个用户,然后将用户的所有字段根据User对象中的属性封装成User实体对象返回,当查询出多条用户记录时,MyBatis 框架会自动将这些一个个创建好的User实体对象封装成一个List集合。所以说方法直接返回List集合即可。

测试XML配置SQL是否成功:

csharp 复制代码
@Test
public void testSelectAll() {
    List<User> userList = userMapper.selectAll();
    for (User user : userList) {
        System.out.println(user);
    }
}
相关推荐
亦暖筑序25 分钟前
Spring AI Alibaba 报错合集:我踩过的那些坑
java·后端
石榴树下的七彩鱼35 分钟前
OCR 识别不准确怎么办?模糊 / 倾斜 / 反光图片优化实战(附完整解决方案 + 代码示例)
图像处理·人工智能·后端·ocr·api·文字识别·图片识别
indexsunny1 小时前
互联网大厂Java面试实战:核心技术与微服务架构在电商场景中的应用
java·spring boot·redis·kafka·maven·spring security·microservices
摇滚侠1 小时前
Java 多线程基础 Java Multithreading Basics
java
今天你TLE了吗1 小时前
LLM到Agent&RAG——AI概念概述 第一章:大模型
java·人工智能·语言模型·大模型
你的牧游哥1 小时前
Java 核心概念详解
java·开发语言
深邃-1 小时前
【数据结构与算法】-顺序表链表经典算法
java·c语言·数据结构·c++·算法·链表·html5
JAVA学习通1 小时前
励志从零打造LeetCode平台之C端竞赛列表
java·vscode·leetcode·docker·状态模式
海兰1 小时前
【第3篇-续】多模型多模态项目实现示例(增加OpenAI通用适配)附源代码
java·人工智能·spring boot·alibaba·spring ai
澄澈青空~1 小时前
有一个叫R2C,也有一个叫G2C
java·数据库·人工智能·c#