MyBatis-XML映射配置

引言

在 Mybatis 中,既可以通过注解配置 SQL 语句,也可以通过 XML 配置文件配置 SQL 语句。默认规则:

  1. XML 映射文件的名称与 Mapper 接口名称一致,并且将 XML 映射文件和 Mapper 接口放置在相同包下 (同包同名)
  2. XML 映射文件的 namespace 属性为 Mapper 接口 全限定名 一致。
  3. XML 映射文件中 sql 语句的 id 与 Mapper 接口中的 方法名 一致,并保持 返回类型 一致。

在Mybatis的开发中,到底使用注解开发还是使用XML开发呢 ?

使用Mybatis的注解,主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能,建议使用XML 来配置映射语句。

官方说明:入门_MyBatis中文网

XML开发的具体实现步骤:

第1步: 创建XML映射文件

注意由于创建的是目录,目录之间使用/分割(这里很容易错)

第2步:编写XML映射文件

xml映射文件中的dtd约束,直接从mybatis官网复制即可; 或者直接AI生成。

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">
<mapper namespace="">
 
</mapper>

第3步:配置

a. XML映射文件的namespace属性为Mapper接口全限定名
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">
<mapper namespace="com.itheima.mapper.UserMapper">

</mapper>
b. XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致
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">
<mapper namespace="com.itheima.mapper.EmpMapper">

    <!--查询操作-->
    <select id="findAll" resultType="com.itheima.pojo.User">
        select * from user
    </select>
    
</mapper>

resultType 属性的值,与查询返回的单条记录封装的类型一致。

运行测试类,执行结果:

注意:一个接口方法对应的SQL语句,要么使用注解配置,要么使用XML配置,切不可同时配置。


MybatisX的使用

MybatisX是一款基于IDEA的快速开发Mybatis的插件,为效率而生。

MybatisX的安装:

可以通过MybatisX快速定位:

MybatisX的使用在后续学习中会继续分享。

小结:

1.使用Mybatis的 注解 ,主要是来完成一些 简单的增删改查功能 。如果需要实现 复杂的SQL 功能,建议使用 XML 来配置 映射语句
2. XML 映射文件的定义规则 ?
a. XML 文件名称与 Mapper 接口名称一致,并且放置在相同包下(同包同名)。
b. XML 文件的 namespace 属性为 Mapper 接口全限定名一致。
c. XML 文件中 sql 语句的 id 与 Mapper 接口中的方法名一致。
3.为 保证同包同名而建立的路径是目录 ,而 目录之间使用/分割 ,不是.分割。 (这里很容易错)
4.注意:一个接口方法对应的 SQL语句 ,要么使用注解配置,要么使用XML配置,切 不可同时配置

相关推荐
程序员侠客行17 小时前
Mybatis的Executor和缓存体系
java·后端·架构·mybatis
雨中飘荡的记忆17 小时前
MyBatis配置解析模块详解
java·mybatis
无名-CODING20 小时前
MyBatis 从入门到精通(详解版)
mybatis
weixin_425023001 天前
Spring Boot + MyBatis Plus JOIN 分页多表查询项目文档
spring boot·后端·mybatis
undsky2 天前
【RuoYi-Eggjs】:多数据库与 MyBatis 特性详解
node.js·mybatis·egg.js
柒.梧.2 天前
MyBatis注解开发全解析:从基础CRUD到关联查询与延迟加载
mybatis
程序员侠客行2 天前
Mybatis入门到精通 一
java·架构·mybatis
又是忙碌的一天2 天前
Myvatis 动态查询及关联查询
java·数据库·mybatis
柒.梧.2 天前
深度解析MyBatis缓存机制:从基础原理到实战配置
缓存·mybatis
一直都在5722 天前
MyBatis缓存
缓存·mybatis