mybatis Mapper代理开发

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。Mapper 是 MyBatis 中用于定义 SQL 语句和映射规则的接口或 XML 文件。下

  1. Mapper 接口
    定义方式:Mapper 接口用于定义 SQL 操作的抽象方法,不需要实现类。
    注解方式:可以使用注解(如 @Select, @Insert, @Update, @Delete)直接在方法上定义 SQL 语句。
    XML 文件方式:在 XML 文件中定义 SQL 语句,并通过 namespace 和方法名进行关联。
  2. XML 配置文件
    文件命名:通常命名为 Mapper 接口名加上 .xml,例如 UserMapper.xml。
    namespace:XML 文件的 namespace 属性必须与 Mapper 接口的全限定名一致。
    SQL 语句:在 select, insert, update, delete 标签中定义 SQL 语句。
  3. 基本标签
    select:用于定义查询语句。
    insert:用于定义插入语句。
    update:用于定义更新语句。
    delete:用于定义删除语句。
    resultMap:用于定义结果集映射,将查询结果映射到 Java 对象。
  4. 参数传递
    单个参数:直接在 SQL 语句中使用 #{参数名}。
    多个参数:可以使用 @Param 注解为参数命名,或使用 Map 传递多个参数。
    对象参数:直接传递一个对象,可以在 SQL 语句中使用对象的属性名。
  5. 代码示例
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>
posted @   Look_Back  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示