MyBatis 映射文件示例:XuserMapper.xml
这是一个MyBatis的映射文件,用于将Java对象映射到数据库表,实现持久化操作。具体解释如下:
-
第一行指定了XML文件版本和编码格式。
-
第二行定义了DTD文件的公共标识符和版本号。
-
<mapper>元素定义了命名空间,用于区分不同的映射文件。 -
<resultMap>元素定义了映射关系,将数据库表的列映射到Java对象的属性。 -
<id>元素定义了主键列的映射关系。 -
<result>元素定义了非主键列的映射关系。 -
<sql>元素定义了可重用的SQL片段,用于组合复杂的SQL语句。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd' >
<mapper namespace='com.huoli.demo.Mapper.XuserMapper' >
<resultMap id='BaseResultMap' type='com.huoli.demo.entity.Xuser' >
<id column='xuser_id' property='id' jdbcType='BIGINT' />
<result column='xuser_name' property='name' jdbcType='VARCHAR' />
<result column='xuser_age' property='age' jdbcType='BIGINT' />
</resultMap>
<sql id='Base_Column_List' >
xuser_id, xuser_name, xuser_age
</sql>
<select id='getAll' resultMap='BaseResultMap' >
SELECT
<include refid='Base_Column_List' />
FROM xuser
</select>
<select id='getOne' parameterType='java.lang.Long' resultMap='BaseResultMap' >
SELECT
<include refid='Base_Column_List' />
FROM xuser
WHERE id = #{id}
</select>
<insert id='insert' >
INSERT INTO
xuser
(xuser_id,xuser_name,xuser_age)
VALUES
(#{id}, #{name}, #{age})
</insert>
<delete id='delete' parameterType='java.lang.Long' >
DELETE FROM
xuser
WHERE
xuser_id =#{id}
</delete>
</mapper>
解释:
-
对象关系映射 (ORM):ORM 框架将 Java 对象与数据库表之间建立关联,实现数据的持久化。MyBatis 是一种半自动 ORM 框架,需要通过 XML 映射文件来定义映射关系。
-
命名空间:命名空间用于区分不同的映射文件。一般使用包名和映射文件名组合,例如
com.huoli.demo.Mapper.XuserMapper。 -
resultMap 元素:定义了数据库表列与 Java 对象属性之间的映射关系。
-
id 元素:定义了主键列的映射关系。
-
result 元素:定义了非主键列的映射关系。
关于纯 Java 代码实现:
MyBatis 也支持通过注解的方式来实现对象和数据库表之间的映射关系,不需要使用 XML 映射文件。这种方式更简洁,但不够灵活,无法实现一些复杂的映射关系。
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User findById(Long id);
@Insert("INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})")
void insert(User user);
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
void update(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void delete(Long id);
}
在上面的示例中,使用 @Select、@Insert、@Update、@Delete 等注解定义 SQL 语句,#{id}、#{name}、#{age} 等表示参数占位符。
原文地址: https://www.cveoy.top/t/topic/lBiZ 著作权归作者所有。请勿转载和采集!