5-3 用户模块-Mapper.xml的SQL整理
一、SQL总结
三个 select SQL
- login
- findUserById
- findUserByAccount
一个 insert SQL
- register
一个 update SQL
- updateUser
总共5条SQL,SQL id要和mapper层接口方法名一一对应。
从生成的mapper.xml中移除非必要原有SQL
二、修改点
- SQL的value类型可以省略,删除以下
jdbcType
字段及前面的逗号
#{phone,jdbcType=INTEGER}
#{password,jdbcType=VARCHAR}
#{createDate,jdbcType= TIMESTAMP}
- String类型字段还需判断是否为空字符串
<if test="password != null and password != ''">
password = #{password},
</if>
- 注释掉
不需要和不允许
通过SQL修改的字段名及字段值
注册用户sql内的:
createDate
、lastLoginTime
、enable
更新用户信息sql内的:
username
authenticationTime
registerProvince
registerCity
registerFrom
createDate
三、注意点
- xml内SQL
id
一定要和mapper接口内的方法名
一一对应 - xml内SQL
paramsType
和resultType
的类型与mapper接口一一对应 (实际发现编译只会对java.lang.xxx包下的数据类型做校验,自定义对象不会) - 写 update sql时,String类型字段根据需求
判空
和空字符串
- 写 update sql时,
where条件
一定不要忘记,包括service层调用前对必要参数的空检查 - 删除不能被修改字段时,应该
同时删除 field 和 value