首页 > 其他分享 >mybatis Mapper代理开发

mybatis Mapper代理开发

时间:2024-10-30 21:49:24浏览次数:6  
标签:语句 Mapper 定义 代理 XML SQL mybatis id

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>

标签:语句,Mapper,定义,代理,XML,SQL,mybatis,id
From: https://www.cnblogs.com/wjhfree/p/18516664

相关文章

  • 如何在社媒平台上使用代理IP来保护帐号安全
    社媒平台如Facebook、Twitter、Instagram等,不仅是用户分享生活与信息的重要平台,也是各类网络攻击的目标。利用代理IP可以帮助使用者保护帐号安全,防止个人信息外泄和帐号被盗用的风险。一、为什么需要使用代理IP保护社媒帐号?在社媒上,用户的活动和个人信息被频繁记录和追踪,包括......
  • 如何使用SOCKS5代理提升匿名性
    一、SOCKS5代理的基本概念与工作原理SOCKS5代理是一种网络协议,其主要功能是在客户端和服务器之间进行资料传输的中介。相较于其他代理协议,SOCKS5具有更高的灵活性和安全性,能够支援UDP和TCP协议,以及身份验证和加密等特性。SOCKS5代理工作原理简单明了:当使用者透过SOCKS5代理服......
  • 本地开发nodejs服务走系统代理 `https-proxy-agent`
    本地开发nodejs服务走系统代理https-proxy-agent使用场景:前端开发中,后端API在工作电脑网络环境不能被直接访问,需要走公司内网代理,或上外网代理等系统代理服务;开发服务nodejs代理的浏览器请求,可能不会自动走系统代理,需要手动配置。constHttpsProxyAgent=require("https-pr......
  • JDK和CGLIB动态代理技术的适用场景和特点
    区别项目JDK动态代理CGLIB动态代理代理原理基于接口(Interface)基于字节码生成(Subclassing)实现方式使用 java.lang.reflect.Proxy 类使用 net.sf.cglib.proxy.Enhancer 类被代理类要求必须实现一个或多个接口可以代理没有实现接口的类,可以是普通类......
  • mybatis动态SQL
    目前项目中写动态SQL,用的都是下面的语法:@Select("<script>"+"SELECTwr.id,wr.customer_id,wr.type,wr.detailfromxxxrel"+"LEFTJOINxxxwronrel.rule_id=wr.idwhererel.entity_id=#{entityId}andwr.customer_id=#{......
  • SpringBoot3.0整合Mybatis-plus实现多数据源(重构类方式)
    背景前段时间在做一个数据中台的项目,系统用到了不同数据库中的数据。自己又不想手写JDBC连接,既然我有这个需求,那功能应该有人实现了,于是开始了网上搜了,搜索后发现基本都是讲读写分离、主备切换的,后面也查略了Mybatis-plus的官网,里面有这个功能,但好像是我组件的版本之间不兼容,导致......
  • 正向代理模块实现
    1概念1.1正向代理概念正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。正向代理的情况下,客户端必须要进行一些特殊的......
  • 06.动态代理设计模式
    06.动态代理设计模式目录介绍01.为何要动态代理1.1为何要动态代理1.2动态代理思考02.动态代理的概念2.1动态代理定义2.2动态代理类比理解2.3动态代理参与者2.4动态代理步骤03.动态代理的实现3.1罗列一个场景3.2用一个例子理解代理3.3基于接口动态代......
  • 使用不可靠来源的住宅代理的风险
    许多代理用户知道住宅代理的好处,但很少有人知道使用不可靠来源的住宅代理的风险。缺乏这方面的知识对于使用不可靠IP的人和拥有这些IP的人来说都是危险的。因此,我们将讨论透明代理来源的重要性以及使用不可靠代理的危险。这样,您就可以专注于您的项目,而不必担心使用不可靠......
  • 正向代理实现
    1概念1.1正向代理概念正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。正向代理的情况下,客户端必须要进行一些特殊的......