mybatisplus的mapper.xml文件 模版
时间: 2025-05-20 08:52:19 浏览: 60
### MyBatisPlus 的 Mapper.xml 文件标准模板
以下是基于提供的引用以及 MyBatis Plus 使用的最佳实践所整理的一个完整的 `Mapper.xml` 文件模板示例:
#### XML 命名空间与配置
在 MyBatis 中,`Mapper.xml` 需要指定命名空间 (namespace),通常该命名空间应与对应的 Mapper 接口全限定类名一致[^1]。
```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="com.example.mapper.UserMapper">
<!-- SQL 片段 -->
<sql id="Base_Column_List">
id, wx_nick_name, email, phone_number, create_time, update_time
</sql>
<!-- 查询语句 -->
<select id="selectByName" resultType="com.example.entity.User">
SELECT <include refid="Base_Column_List"/>
FROM user
WHERE wx_nick_name = #{wxNickName}
</select>
<!-- 插入语句 -->
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user(wx_nick_name, email, phone_number, create_time)
VALUES(#{wxNickName}, #{email}, #{phoneNumber}, NOW())
</insert>
<!-- 更新语句 -->
<update id="updateUserById" parameterType="com.example.entity.User">
UPDATE user
SET wx_nick_name = #{wxNickName},
email = #{email},
phone_number = #{phoneNumber},
update_time = NOW()
WHERE id = #{id}
</update>
<!-- 删除语句 -->
<delete id="deleteUserById">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
```
---
#### 关键点解析
1. **命名空间设置**
- `<mapper>` 标签的 `namespace` 属性需匹配对应的 Mapper 接口全限定名称。例如,在上述例子中,`UserMapper` 对应的是 `com.example.mapper.UserMapper` 类。
2. **SQL 片段复用**
- 可通过 `<sql>` 定义可复用的 SQL 片段,并使用 `<include>` 引用这些片段。这有助于减少重复代码并提高维护效率[^4]。
3. **参数绑定**
- 如果接口方法只有一个参数,则可以直接通过 `#{}` 绑定;如果存在多个参数,则需要借助 `@Param` 注解为参数起别名,并在 XML 中通过 `${}` 或 `#{}` 进行引用。
4. **ResultMap 映射**
- 若返回对象较为复杂(嵌套属性或其他映射关系),可以定义 `<resultMap>` 来实现字段到 Java 实体类属性的一一映射[^3]。
---
#### Spring Boot 整合注意事项
当使用 Spring Boot 和 MyBatis Plus 时,可以通过如下方式加载自定义的 `Mapper.xml` 文件:
- 在 `application.yml` 或 `application.properties` 中配置 `mapperLocations` 参数,指向资源目录下的 `.xml` 文件位置[^2]。
```yaml
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
```
或者手动注册 Bean 并指定路径:
```java
@Bean
public MybatisSqlSessionFactoryBean sqlSessionFactory() {
MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();
factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*.xml"));
return factoryBean;
}
```
---
阅读全文
相关推荐

















