xml mapper怎么写
时间: 2023-07-03 18:24:17 浏览: 81
MyBatis 的 Mapper XML 文件用于定义 SQL 语句和映射关系。下面是一个简单的例子:
```
<?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">
<!-- 定义查询语句 -->
<select id="getUserById" parameterType="int" resultType="com.example.model.User">
select * from user where id = #{id}
</select>
<!-- 定义插入语句 -->
<insert id="insertUser" parameterType="com.example.model.User">
insert into user(name, age, email) values(#{name}, #{age}, #{email})
</insert>
<!-- 定义更新语句 -->
<update id="updateUser" parameterType="com.example.model.User">
update user set name = #{name}, age = #{age}, email = #{email} where id = #{id}
</update>
<!-- 定义删除语句 -->
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
```
在上面的例子中,我们定义了一个名为 `com.example.mapper.UserMapper` 的 Mapper 接口,然后在 XML 文件中使用 `namespace` 属性指定了该接口的全限定名。
接着,我们在 XML 中定义了四个 SQL 语句,分别是查询、插入、更新和删除。每个 SQL 语句都有一个唯一的 `id` 属性,用于在 Java 代码中调用。`parameterType` 属性指定了 SQL 语句的参数类型,`resultType` 属性指定了返回结果的类型。
最后,我们需要将 Mapper XML 文件与相应的 Mapper 接口绑定,可以在 Spring Boot 的启动类上添加 `@MapperScan` 注解,也可以在 XML 文件中使用 `<mapper>` 标签的 `namespace` 属性指定 Mapper 接口的全限定名。例如:
```
@MapperScan("com.example.mapper")
@SpringBootApplication
public class MyApplication {
// ...
}
```
或者:
```
<mapper namespace="com.example.mapper.UserMapper">
<!-- ... -->
</mapper>
```
注意,在使用 MyBatis 时,我们还需要在配置文件中指定 Mapper XML 文件的路径,例如:
```
mybatis.mapper-locations=classpath:mapper/*.xml
```
阅读全文