MyBatis基础操作

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, '男', '12345@qq.com')  
</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 轻松地完成数据库操作。

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值