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