MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。Mapper 是 MyBatis 中用于定义 SQL 语句和映射规则的接口或 XML 文件。下
- Mapper 接口
定义方式:Mapper 接口用于定义 SQL 操作的抽象方法,不需要实现类。
注解方式:可以使用注解(如 @Select, @Insert, @Update, @Delete)直接在方法上定义 SQL 语句。
XML 文件方式:在 XML 文件中定义 SQL 语句,并通过 namespace 和方法名进行关联。 - XML 配置文件
文件命名:通常命名为 Mapper 接口名加上 .xml,例如 UserMapper.xml。
namespace:XML 文件的 namespace 属性必须与 Mapper 接口的全限定名一致。
SQL 语句:在 select, insert, update, delete 标签中定义 SQL 语句。 - 基本标签
select:用于定义查询语句。
insert:用于定义插入语句。
update:用于定义更新语句。
delete:用于定义删除语句。
resultMap:用于定义结果集映射,将查询结果映射到 Java 对象。 - 参数传递
单个参数:直接在 SQL 语句中使用 #{参数名}。
多个参数:可以使用 @Param 注解为参数命名,或使用 Map 传递多个参数。
对象参数:直接传递一个对象,可以在 SQL 语句中使用对象的属性名。 - 代码示例
Mapper 接口
public interface UserMapper {
User selectUserById(int id);
List<User> selectAllUsers();
void insertUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
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">
<select id="selectUserById" parameterType="int" resultType="com.example.model.User">
SELECT * FROM users WHERE id = #{id}
</select>
<select id="selectAllUsers" resultType="com.example.model.User">
SELECT * FROM users
</select>
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO users (name, email) VALUES (#{name}, #{email})
</insert>
<update id="updateUser" parameterType="com.example.model.User">
UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
标签:语句,Mapper,定义,代理,XML,SQL,mybatis,id
From: https://www.cnblogs.com/wjhfree/p/18516664