spring mybatis配置

# datasource
spring.datasource.url=jdbc:mysql://abc.com:3306/data-collector-dev?useUnicode=true
spring.datasource.username=dataservice
spring.datasource.password=Data12345
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# mybatis
mybatis.config-location=classpath:/mybatis/mybatis-config.xml
mybatis.typeAliasesPackage=com.du.test.dal.domain
spring.mybatis.config=classpath:/sqlmap-config.xml
spring.mybatis.scan-base-package=com.du.test.dal.dao


sqlmap-config.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="cacheEnabled" value="true"/>
        <setting name="lazyLoadingEnabled" value="false"/>
        <setting name="aggressiveLazyLoading" value="true"/>
        <setting name="multipleResultSetsEnabled" value="true"/>
        <setting name="useColumnLabel" value="true"/>
        <setting name="useGeneratedKeys" value="false"/>
        <setting name="autoMappingBehavior" value="PARTIAL"/>
        <setting name="defaultExecutorType" value="SIMPLE"/>
        <setting name="localCacheScope" value="STATEMENT"/>
    </settings>
    <!--别名定义在这里-->
    <typeAliases>
        <package name="com.du.test.dal.domain"></package>
    </typeAliases>
</configuration>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!-- mybatis的配置文件 -->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <mappers>
        <mapper resource="mybatis/sqlmap/DataSchemaMapper.xml"/>
        <mapper resource="mybatis/sqlmap/DataSourceMapper.xml"/>
        <mapper resource="mybatis/sqlmap/DataTargetMapper.xml"/>
        <mapper resource="mybatis/sqlmap/TaskMapper.xml"/>
    </mappers>
</configuration>

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="com.du.test.dal.dao.TaskMapper">
    <sql id="select-common">
        select
        id,
        data_schemaId as dataSchemaId,
        data_source_id as dataSourceId,
        data_target_id as dataTargetId,
        type as type,
        trans_mode as transMode,
        status as status,
        gmt_create as gmtCreate,
        gmt_modified as gmtModified
    </sql>

    <!-- 根据id查询 -->
    <select id="getById" parameterType="java.lang.Long" resultType="TaskDO">
        <include refid="select-common"/>
        from task WHERE id = #{id} and status in (0,1)
    </select>


    <!-- 新增 -->
    <insert id="insert" parameterType="TaskDO">
        insert into task (data_schemaId, data_source_id, data_target_id, type, trans_mode, status, gmt_create, gmt_modified)
        values
        (#{dataSchemaId}, #{dataSourceId}, #{dataTargetId}, #{type}, #{transMode}, #{status}, 1, now(), now())
        <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
            select LAST_INSERT_ID();
        </selectKey>
    </insert>

    <!-- 更新 -->
    <update id="update" parameterType="TaskDO">
        update task
        set
        gmt_modified = now()
        <if test="type != null">
            ,type = #{type}
        </if>
        <if test="transMode != null">
            ,trans_mode = #{transMode}
        </if>
        <if test="dataSchemaId != null">
            ,data_schema_id = #{dataSchemaId}
        </if>
        <if test="dataTargetId != null">
            ,data_target_id = #{dataTargetId}
        </if>
        <if test="dataSchemaId != null">
            ,data_source_id = #{dataSourceId}
        </if>
        <if test="status != null">
            ,status = #{status}
        </if>
        WHERE
        id = #{id}
    </update>

    <!-- 逻辑删除 -->
    <update id="delete" parameterType="java.lang.Long">
        update task
        set
        gmt_modified = now()
        ,status = -1
        WHERE
        id = #{id}
    </update>
</mapper>

TaskMapper

package com.du.test.dal.dao;

import com.aliyun.alios.datacollector.dal.domain.TaskDO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface TaskMapper {

    /**
     * insert
     * @param taskDO
     * @return
     */
    Long insert(TaskDO taskDO);

    /**
     * insert
     * @param taskDO
     * @return
     */
    Long update(TaskDO taskDO);

    /**
     * delete
     * @param id
     */
    Long delete(Long id);

    /**
     * getById
     * @param id
     */
    TaskDO getById(Long id);
}
mybatis.typeAliasesPackage=com.du.test.dal.domain 指定了mapper.xml中类型的前缀,如下图中的resultType=“TaskDO”,就没有指定类名称的全路径。





原文地址:https://www.cnblogs.com/diegodu/p/8136455.html