当前位置:首页 > Java

java mybatis如何映射

2026-03-22 15:31:30Java

MyBatis 映射配置方法

MyBatis 的核心是通过 XML 或注解将 Java 对象与数据库表进行映射。以下是常见的映射方式:

XML 映射文件配置mapper.xml 文件中定义 SQL 与结果的映射关系:

<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="userResultMap" type="User">
        <id property="id" column="user_id"/>
        <result property="name" column="user_name"/>
        <result property="email" column="user_email"/>
    </resultMap>

    <select id="selectUser" resultMap="userResultMap">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>

注解方式映射 直接在接口方法上使用注解:

public interface UserMapper {
    @Results({
        @Result(property = "id", column = "user_id"),
        @Result(property = "name", column = "user_name"),
        @Result(property = "email", column = "user_email")
    })
    @Select("SELECT * FROM users WHERE id = #{id}")
    User selectUser(int id);
}

高级映射技巧

一对一关联映射 使用 <association> 标签处理单对象关联:

<resultMap id="orderWithUserMap" type="Order">
    <id property="id" column="order_id"/>
    <association property="user" javaType="User">
        <id property="id" column="user_id"/>
        <result property="name" column="user_name"/>
    </association>
</resultMap>

一对多关联映射 使用 <collection> 标签处理集合关联:

<resultMap id="userWithOrdersMap" type="User">
    <id property="id" column="user_id"/>
    <collection property="orders" ofType="Order">
        <id property="id" column="order_id"/>
    </collection>
</resultMap>

动态 SQL 支持

MyBatis 提供多种动态 SQL 标签:

<select id="findUsers" resultType="User">
    SELECT * FROM users
    <where>
        <if test="name != null">
            AND name = #{name}
        </if>
        <choose>
            <when test="status == 1">
                AND active = 1
            </when>
            <otherwise>
                AND active = 0
            </otherwise>
        </choose>
    </where>
</select>

类型处理器配置

自定义类型处理需实现 TypeHandler 接口:

@MappedTypes({Date.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class DateTypeHandler extends BaseTypeHandler<Date> {
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) {
        ps.setString(i, new SimpleDateFormat("yyyy-MM-dd").format(parameter));
    }
    // 其他方法实现...
}

配置文件中注册处理器:

java mybatis如何映射

<typeHandlers>
    <typeHandler handler="com.example.handler.DateTypeHandler"/>
</typeHandlers>

标签: javamybatis
分享给朋友:

相关文章

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

win7如何配置java环境变量

win7如何配置java环境变量

下载并安装Java 从Oracle官网下载适合的Java Development Kit (JDK)安装包,选择与系统位数(32位或64位)匹配的版本。运行安装程序,按照提示完成安装,默认路径通常为C…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…