# 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”,就没有指定类名称的全路径。