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 synchronized关键字的用法

    详解Java synchronized关键字的用法

    在多线程编程中常常使用锁机制来确保同一时刻只有一个线程能够修改共享内存,在Java中一般是使用synchronized作为锁机制,下面就让我们来学习一下如何使用synchronized实现线程安全吧
    2023-08-08
  • Quarkus中ConfigSourceInterceptor的加密配置实现

    Quarkus中ConfigSourceInterceptor的加密配置实现

    这篇文章主要为大家介绍Quarkus中ConfigSourceInterceptor加密配置的实现方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-02-02
  • 搭建maven私有仓库的方法实现

    搭建maven私有仓库的方法实现

    Maven是一个流行的Java项目管理工具,它可以帮助我们管理项目的构建、报告和文档,本文主要介绍了搭建maven私有仓库的方法实现,感兴趣的可以了解一下
    2023-05-05
  • 使用java 实现mqtt两种常用方式

    使用java 实现mqtt两种常用方式

    在开发MQTT时有两种方式一种是使用Paho Java 原生库来完成,一种是使用spring boot 来完成,这篇文章主要介绍了使用java 实现mqtt两种方式,需要的朋友可以参考下
    2022-11-11
  • Mybatis图文并茂讲解分页插件

    Mybatis图文并茂讲解分页插件

    使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化。缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分页长度,也就是说要使用到两个方法才能完成分页
    2022-07-07
  • 从零开始使用IDEA创建SpringBoot项目(图文)

    从零开始使用IDEA创建SpringBoot项目(图文)

    这篇文章主要介绍了从零开始使用IDEA创建SpringBoot项目(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 解决java.lang.ClassCastException的java类型转换异常的问题

    解决java.lang.ClassCastException的java类型转换异常的问题

    这篇文章主要介绍了解决java.lang.ClassCastException的java类型转换异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Flowable历史查询实例分析

    Flowable历史查询实例分析

    这篇文章主要介绍了Flowable历史查询实例分析,历史是记录流程执行过程中发生的事情,并将其永久存储的组件,与运行时数据不同,历史数据在流程实例完成以后仍保存在数据库中,下面我们来深入了解
    2023-10-10
  • springboot+camunda实现工作流的流程分析

    springboot+camunda实现工作流的流程分析

    Camunda是基于Java语言,支持BPMN标准的工作流和流程自动化框架,并且还支持CMMN规范,DMN规范,本文给大家介绍springboot+camunda实现工作流的流程分析,感兴趣的朋友一起看看吧
    2021-12-12
  • Mybatis中流式查询的实现示例

    Mybatis中流式查询的实现示例

    MyBatis的ResultHandler是用于处理数据库查询结果集的工具,可以通过回调函数对数据进行流式处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09

最新评论