首页 > 其他分享 >MyBatis基础操作

MyBatis基础操作

时间:2024-06-10 23:32:25浏览次数:25  
标签:Java 示例 基础 查询 user MyBatis 操作 id

MyBatis 是一款优秀的持久层框架,它允许我们直接使用 SQL 语句,并通过 XML注解的方式将SQL语句与Java 对象进行映射。

下面,我们将详细介绍使用XML方式实现MyBatis的几种基础操作:插入删除更新查询

一. 插入操作

在 MyBatis 中,插入操作通常通过 <insert> 标签进行配置。以下是一个简单的示例,用于向 t_user 表中插入一条新记录:

<!-- int insertUser(); -->  
<insert id="insertUser">  
    insert into t_user (id, username, password, age, gender, email) 
    			values (null, 'admin', '123456', 23, '男', '[email protected]')  
</insert>

注意:上面的示例假设t_user表具有自增主键id。在实际开发中,我们通常会使用参数化查询来避免SQL注入攻击

二. 删除操作

删除操作通过 <delete> 标签进行配置。以下是一个简单的示例,用于删除 t_user 表中 id 为 6 的记录:

<!-- int deleteUser(); -->  
<delete id="deleteUser">  
    delete from t_user where id = #{id}  
</delete>

注意:我们使用了 #{id} 来接收参数,这是一种参数化查询的方式,可以提高安全性。

三. 更新操作

更新操作通过 <update> 标签进行配置。以下是一个简单的示例,用于更新 t_user 表中 id 为 5 的记录的 username 字段:

<!-- int updateUser(); -->  
<update id="updateUser">  
    update t_user set username = #{username} where id = #{id}  
</update>

注意:同样地,我们使用了参数化查询来提高安全性。

四. 查询一个实体类对象

当我们需要查询单个记录时,可以使用 <select> 标签并设置 resultType 属性。以下是一个示例,用于根据 id 查询 t_user 表中的记录:

<!-- User getUserById(int id); -->  
<select id="getUserById" resultType="com.example.mybatis.bean.User">  
    select * from t_user where id = #{id}  
</select>

注意:我们使用了 #{id} 来接收参数,并指定了返回结果的类型 com.example.mybatis.bean.User

五. 查询集合

当我们需要查询多个记录时,可以使用标签并设置 resultType 属性。以下是一个示例,用于查询t_user表中的所有记录:

<!-- List<User> getUserList(); -->  
<select id="getUserList" resultType="com.example.mybatis.bean.User">  
    select * from t_user  
</select>

注意当查询结果为多条记录时,返回类型应为集合(如 List<User>)。
如果查询结果只有一条记录,但可能不确定时,也可以使用集合作为返回类型,并在调用时进行相应的处理。

当数据库表的列名与 Java 对象的属性名不一致时,可以使用 resultMap 属性来指定它们之间的映射关系,更精细地控制如何从结果集中映射数据到 Java 对象。以下是一个示例,根据 id 查询 t_user 表中的部分记录:

<resultMap id="userResult" type="com.example.mybatis.bean.User">  
  <id property="id" column="user_id" />  
  <result property="username" column="user_name" />  
  <result property="password" column="pass" />  
</resultMap>  
  
<select id="selectUser" resultMap="userResult">  
  SELECT user_id, user_name, pass FROM t_user WHERE id = #{id}  
</select>

说明

  • <result> 标签用于定义如何从数据库结果集的列映射到 Java 对象的属性。

  • id:标识 Java 对象的唯一标识符

  • type:数据库结果集映射的 Java 对象类名(类所在包的路径)

  • property:Java 对象的属性名。

  • column:数据库结果集的列名。

注意事项

  • <select> <insert> <update> <delete> 标签中,id 属性用于唯一标识该语句。这个 id 是在 MyBatis 的映射器接口中引用该语句时所使用的。

  • resultType 属性用于设置返回结果与Java对象之间的映射关系,通常用于字段名和属性名一致的情况。

  • resultMap 属性用于自定义映射关系,适用于字段名和属性名不一致或需要进行复杂映射的情况。

  • 当查询结果可能为空或不确定时,建议使用集合作为返回类型,并在代码中进行适当的检查和处理。

通过这些基础操作的示例和注意事项,我们已经对 MyBatis 的使用有了基本的了解。在实际开发中,结合业务需求和数据库结构,可以使用 MyBatis 轻松地完成数据库操作。

标签:Java,示例,基础,查询,user,MyBatis,操作,id
From: https://blog.csdn.net/Zachyy/article/details/139508702

相关文章

  • Mybatis的查询功能
    MyBatis的各种查询功能如果查询出的数据只有一条,可以通过实体类对象接收List集合接收Map集合接收,如结果{password=123456,sex=男,id=1,age=23,username=admin}如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过实体类类型......
  • 【简单介绍下链表基础知识】
    ......
  • C语言详解(文件操作)2
    Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎~~......
  • 自媒体(5)--短视频基础
    短视频一,什么是短视频以微博、抖音、快手、西瓜等平台上的视频内容为主要形式,常见的5分钟以内的 高效传播的视频二,为什么现阶段短视频这么火1,大众互联网消费内容的不同阶段?文字-音频-视频--图文-直播-短视频-VR.....社会进入了更高阶的发展阶段2,短视频内容丰富:文字、......
  • 情景题之小明的Linux实习之旅:linux实战练习1(上)【基础命令,权限修改,日志查询,进程管理...
    小明的Linux实习之旅:基础指令练习情景练习题背景介绍场景1:初识Linux,创建目录和文件场景2:权限管理,小明的权限困惑场景3:打包与解压,小明的备份操作场景4:使用Grep,小明的搜索技能场景5:系统服务管理,小明的首次接触场景6:进程管理,小明的多任务处理场景7:定时任务与系统状态场景8:d......
  • MySQL数据库的基础:逻辑集合数据库与表的基础操作
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • C# OpenCvSharp Mat操作-创建Mat-zeros
    在OpenCvSharp中,zeros函数用于创建一个全零的矩阵(Mat对象)。这个函数有多个重载版本,可以根据不同的需求来创建不同形状和类型的全零矩阵。下面我将详细解释每个重载版本,并通过具体的代码示例来说明如何使用它们。......
  • ansible高级操作 serial滚动更新
    1.异步操作和轮询默认情况下,剧本中的任务会一直处于打开状态,直到任务在每个节点上完成。这样可以会造成阻塞和超时,因此我们可以使用异步模式一次运行所有任务,然后轮询直到它们完成为止。Ansible本身就是采用的多线程来操作多个主机节点,可以使用-P来异步操作。现在所说的异步操作......
  • Windows系统 在VirtualBox虚拟机上安装搭建OpenEuler操作系统 并用Putty验证是否创建
    目录1.配置虚拟化环境步骤1进入BIOS,开启CPU虚拟化技术,不同电脑开启方式有所不同步骤2下载并安装VirtualBox/VMWare。按照学校给的实验指导书,这里我下载的是VirtualBox(我的电脑是我前段时间自己重新配的win11系统)步骤3 下载openeuler操作系统,在网页搜索openeuler下......
  • 【Python教程】4-字符串、列表、字典、元组与集合操作
    在整理自己的笔记的时候发现了当年学习python时候整理的笔记,稍微整理一下,分享出来,方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术,最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新,然后更新深度学习的一些框架,一些代码,从CV到NLP都会有相应......