• 前置条件

    在开发之前,请确保

    介绍

    demo需涉及到infra层的 dataobject 类以及 mapper 类。

    编写dataobject

    指定对应表

    属性规范

    属性的的类型与字段的 type 对应

    注意:BigDecimal 在计算、比较方面的特殊性

    所有的主键字段都需要用@Id标注

    * 对于自增张、序列(SEQUENCE)类型的主键,需要添加注解@GeneratedValue。 * 序列命名规范:表名_S。例如:表SYS_USER对应的序列为 SYS_USER_S

    非数据库字段

    UserDO.java 代码

    package io.choerodon.todo.infra.dataobject;
    
    // 省略 import
    
    @ModifyAudit //在类上使用,启用审计字段支持,实体类加上该注解后,插入和更新会启动对creationDate、createdBy、lastUpdateDate、lastUpdatedBy自维护字段支持
    @VersionAudit //在类上使用,启用objectVersionNumber自维护支持,插入一条数据objectVersionNumber默认为1,每次update后objectVersionNumber自增1
    @Table(name = "todo_user")
    public class UserDO extends AuditDomain { //AuditDomain包含5个自维护字段,使用@ModifyAudit和@VersionAudit的实体类要继承该类
        @Id
        @GeneratedValue //对于自增张、序列(SEQUENCE)类型的主键,需要添加该注解
        private Long id;
        private String employeeName;
        private String employeeNumber;
        private String email;
    
        // 省略get和set方法
    }
    
    

    TaskDO.java 代码

    package io.choerodon.todo.infra.dataobject;
    
    // 省略 import
    
    @ModifyAudit
    @VersionAudit
    @Table(name = "todo_task")
    public class TaskDO extends AuditDomain { 
        @Id
        @GeneratedValue
        private Long id;
        private Long employeeId;
        private String state;
        private String taskNumber;
        private String taskDescription;
    
        // 省略get和set方法
    }
    

    Mapper

    mapper接口类

    mapper.xml

    UserMapper.java 代码

    package io.choerodon.todo.infra.mapper;
    
    // 省略 import
    
    public interface UserMapper extends BaseMapper<UserDO> {
    }
    

    TaskMapper.java 代码

    package io.choerodon.todo.infra.mapper;
    
    // 省略 import
    
    public interface TaskMapper extends BaseMapper<TaskDO> {
        TaskDO queryByTaskNumber(@Param("taskNumber") String taskNumber);
    }
    
    

    UserMapper.xml 文件

    <?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="io.choerodon.todo.infra.mapper.UserMapper">
    
    </mapper>
    

    TaskMapper.xml 文件

    <?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="io.choerodon.todo.infra.mapper.TaskMapper">
    
        <select id="queryByTaskNumber" resultType="io.choerodon.todo.infra.dataobject.TaskDO">
            SELECT * FROM TODO_TASK 
            WHERE
            TASH_NUMBER=#{taskNumber} limit 1
        </select>
    </mapper>