一、基本信息
1、登陆机器 ssh lina02@mjump.missfresh.net -p2222
二、问题
1、分页问题:job_id为空时能查询出来(笛卡尔乘积),需要加上AND res.job_id IS NOT NULL AND task.job_id IS NOT NULL AND res.job_id !='' AND task.job_id !=''
<resultMap id="dtoMap" type="com.mryx.matrix.codeanalyzer.dto.CodeScanTaskDto">
<id column="id" property="id" jdbcType="INTEGER"/>
<association property="codeScanResult" javaType="com.mryx.matrix.codeanalyzer.domain.CodeScanResult">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="blocker" property="blocker" jdbcType="INTEGER"/>
<result column="critical" property="critical" jdbcType="INTEGER"/>
<result column="major" property="major" jdbcType="INTEGER"/>
<result column="minor" property="minor" jdbcType="INTEGER"/>
<result column="info" property="info" jdbcType="INTEGER"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<result column="blockerResultUrl" property="blockerResultUrl" jdbcType="VARCHAR"/>
<result column="criticalResultUrl" property="criticalResultUrl" jdbcType="VARCHAR"/>
<result column="majorResultUrl" property="majorResultUrl" jdbcType="VARCHAR"/>
</association>
<association property="projectCodeScanTask" javaType="com.mryx.matrix.codeanalyzer.domain.ProjectCodeScanTask">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="task_name" property="taskName" jdbcType="VARCHAR"/>
<result column="app_code" property="appCode" jdbcType="VARCHAR"/>
<result column="mode_of_scan" property="modeOfScan" jdbcType="SMALLINT"/>
<result column="app_branch" property="appBranch" jdbcType="VARCHAR"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</association>
</resultMap>
<sql id="conditions">
<if test="id != null ">and id = #{id,jdbcType=INTEGER}</if>
<if test="taskName != null and taskName != '' ">and task_name like '%${taskName}%'</if>
<if test="appCode != null and appCode != '' ">and app_code like '%${appCode}%'</if>
<if test="modeOfScan != null ">and mode_of_scan = #{modeOfScan,jdbcType=INTEGER}</if>
<if test="appBranch != null and appBranch != '' ">and app_branch = #{appBranch,jdbcType=VARCHAR}</if>
<if test="baseVersion != null and baseVersion != '' ">and base_version = #{baseVersion,jdbcType=INTEGER}</if>
<if test="compareVersion != null and compareVersion != '' ">and compare_version =
#{compareVersion,jdbcType=VARCHAR}
</if>
<if test="timeTrigger != null and timeTrigger != '' ">and time_trigger = #{timeTrigger,jdbcType=TIMESTAMP}</if>
<if test="userName != null and userName != '' ">and user_name = #{userName,jdbcType=VARCHAR}</if>
<if test="createTime != null and createTime != '' ">and create_time = #{createTime,jdbcType=TIMESTAMP}</if>
<if test="updateTime != null and updateTime != '' ">and update_time = #{updateTime,jdbcType=TIMESTAMP}</if>
</sql>
<select id="getCodeScanTask" resultMap="dtoMap"
parameterType="com.mryx.matrix.codeanalyzer.domain.ProjectCodeScanTask">
SELECT task.id,task.task_name,task.app_code,task.mode_of_scan,task.app_branch,task.user_name,task.update_time,
res.blocker,res.critical,res.major,res.minor,res.info,res.status,res.blocker_result_url,res.critical_result_url,res.major_result_url
FROM project_codescan_task AS task INNER JOIN code_scan_result AS res ON task.job_id=res.job_id
WHERE 1=1 AND res.job_id IS NOT NULL AND task.job_id IS NOT NULL AND res.job_id !='' AND task.job_id !=''
<include refid="conditions"/>
ORDER BY task.id DESC
limit #{startOfPage},#{pageSize}
</select>
<!-- 分页查询总数 -->
<select id="pageTotal" resultType="java.lang.Integer"
parameterType="com.mryx.matrix.codeanalyzer.domain.ProjectCodeScanTask">
SELECT count(*)
FROM project_codescan_task AS task INNER JOIN code_scan_result AS res ON task.job_id=res.job_id
WHERE 1=1 AND res.job_id IS NOT NULL AND task.job_id IS NOT NULL AND res.job_id !='' AND task.job_id !=''
<include refid="conditions"/>
</select>
2、insert数据库问题: 字段属性有NOT NULL属性,mapper文件中的sql语句没有为该字段写值,导致插入不了数据库,字段需要有DEFAULT属性
3、实体类中的属性是驼峰命名的时候,mapper中的sql语句需要使用resultMap
<resultMap id="sonarMap" type="com.mryx.matrix.codeanalyzer.domain.CodeScanResult">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="task_name" property="taskName" jdbcType="VARCHAR"/>
<result column="app_code" property="appCode" jdbcType="VARCHAR"/>
<result column="type_of_scan" property="typeOfScan" jdbcType="SMALLINT"/>
<result column="mode_of_scan" property="modeOfScan" jdbcType="SMALLINT"/>
<result column="code_branch" property="codeBranch" jdbcType="VARCHAR"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="blocker" property="blocker" jdbcType="INTEGER"/>
<result column="critical" property="critical" jdbcType="INTEGER"/>
<result column="major" property="major" jdbcType="INTEGER"/>
<result column="minor" property="minor" jdbcType="INTEGER"/>
<result column="info" property="info" jdbcType="INTEGER"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<result column="blocker_result_url" property="blockerResultUrl" jdbcType="VARCHAR"/>
<result column="critical_result_url" property="criticalResultUrl" jdbcType="VARCHAR"/>
<result column="major_result_url" property="majorResultUrl" jdbcType="VARCHAR"/>
</resultMap>
<!-- 分页查询 -->
<select id="getCodeScanTask" resultMap="sonarMap"
resultType="com.mryx.matrix.codeanalyzer.domain.CodeScanResult">
SELECT
id,task_name,app_code,type_of_scan,mode_of_scan,code_branch,user_name,update_time,
blocker,critical,major,minor,info,status,blocker_result_url,critical_result_url,major_result_url
FROM code_scan_result WHERE manual_or_automatic != 0
<include refid="conditions"/>
ORDER BY id DESC
limit #{startOfPage},#{pageSize}
</select>
发邮件:https://www.cnblogs.com/sea520/p/4565273.html