MyBatis中mapper.java和mapper.xml的关系说明

 更新时间:2024年05月18日 10:42:24   作者:Hommmmmmm  
这篇文章主要介绍了MyBatis中mapper.java和mapper.xml的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mapper.java和mapper.xml的关系

1.SysUser.java

public class SysUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    
    private Long userId;
    private Long deptId;
    private String userName;
    private String nickName;
    private String email;
    ......
}

2.SysUserMapper.java

public interface SysUserMapper
{
    public List<SysUser> selectUserList(SysUser sysUser);
    public SysUser selectUserByUserName(String userName);
    public SysUser selectUserById(Long userId);
    public int insertUser(SysUser user);
    ......
}

接口定义有以下特点:

  • 1.Mapper 接口方法名和 SysUserMapper.xml 中定义的每个 statement 的 id 同名。
  • 2.Mapper 接口方法的输入参数类型和 SysUserMapper.xml 中定义的 statement 的parameterType 类型相同。
  • 3.Mapper 接口的返回类型和 SysUserMapper.xml 中定义的 statement 的 resultType 类型相同。

3.SysUserMapper.xml

1.xml文件的namespace要写成mapper接口的全限定类名。

<mapper namespace="com.ruoyi.project.system.mapper.SysUserMapper">

2.statement 的id和mapper中的方法名要对应起来

比如下面,mapper中方法名为insertUser,insert的statement 标签id也要为insertUser

<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
    insert into sys_user(
        <if test="userId != null and userId != 0">user_id,</if>
        <if test="deptId != null and deptId != 0">dept_id,</if>
        <if test="userName != null and userName != ''">user_name,</if>
        <if test="nickName != null and nickName != ''">nick_name,</if>
        <if test="email != null and email != ''">email,</if>
        create_time
    )values(
        <if test="userId != null and userId != ''">#{userId},</if>
        <if test="deptId != null and deptId != ''">#{deptId},</if>
        <if test="userName != null and userName != ''">#{userName},</if>
        <if test="nickName != null and nickName != ''">#{nickName},</if>
        <if test="email != null and email != ''">#{email},</if>
        sysdate()
    )
</insert>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java 构造方法的使用详解

    Java 构造方法的使用详解

    构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法
    2021-11-11
  • Java计算两个汉字相似度的实现方法

    Java计算两个汉字相似度的实现方法

    有时候我们希望计算两个汉字的相似度,比如文本的 OCR 等场景,用于识别纠正,本文给大家详细介绍了Java计算两个汉字相似度的实现方法,文中有详细的实现代码,需要的朋友可以参考下
    2023-11-11
  • Spring WebMVC初始化Controller流程详解

    Spring WebMVC初始化Controller流程详解

    这篇文章主要介绍了Spring WebMVC初始化Controller流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java与MySQL时间不一致问题解决

    Java与MySQL时间不一致问题解决

    本文主要介绍了Java与MySQL时间不一致问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • SpringBoot 多线程事务回滚的实现

    SpringBoot 多线程事务回滚的实现

    本文是基于springboot的@Async注解开启多线程,并通过自定义注解和AOP实现的多线程事务,避免繁琐的手动提交/回滚事务,感兴趣的可以了解一下
    2024-02-02
  • Java中Optional类及orElse方法详解

    Java中Optional类及orElse方法详解

    这篇文章主要为大家介绍了Java中Optional类及orElse()方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Java农夫过河问题的继承与多态实现详解

    Java农夫过河问题的继承与多态实现详解

    这篇文章主要介绍了Java农夫过河问题的继承与多态实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • SpringBoot使用RestTemplate发送http请求的实操演示

    SpringBoot使用RestTemplate发送http请求的实操演示

    RestTemplate是Spring 框架提供的 ,可用于在应用中调用 rest 服务,它简化了与 http 服务的通信方式,统一了 RESTful 的标准,封装了 http 链接,本文给大家介绍了SpringBoot使用RestTemplate发送http请求的实操演示,需要的朋友可以参考下
    2024-11-11
  • SpringBoot是如何使用SQL数据库的?

    SpringBoot是如何使用SQL数据库的?

    今天给大家带来的是关于Springboot的相关知识,文章围绕着SpringBoot是如何使用SQL数据库的展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java中的栈概述及JVM 中的栈结构

    Java中的栈概述及JVM 中的栈结构

    栈是一种受限的线性数据结构,只能在一端(称为 栈顶(Top))进行插入和删除操作,本文给大家介绍Java中的栈概述深入理解JVM中的栈结构,感兴趣的朋友跟随小编一起看看吧
    2025-10-10

最新评论