<if test="unionUserId != null and unionUserId != ''">
and c.union_user_id = #{unionUserId}
</if>
<choose>
<when test="queryModifyTime != null and queryModifyTime != ''">
AND a.gmt_modify BETWEEN #{startTime} AND #{endTime}
</when>
<when test="">
////....
</when>
<otherwise>
AND a.gmt_create BETWEEN #{startTime} AND #{endTime}
</otherwise>
</choose>
<delete id="deleteBatch">
delete from user where id in
<foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</delete
<select id="findOneUser"
resultType="User">
SELECT * FROM t_user
<where>
<if test="state != null">
state = #{state}
</if>
<if test="author != null and author.name != null">
AND author_name like #{author.name}
</if>
</where>
</select>
<update id="updateUser">
update t_user
<set>
<if test="username != null">username=#{username},</if>
<if test="password != null">password=#{password},</if>
<if test="email != null">email=#{email},</if>
<if test="bio != null">bio=#{bio}</if>
</set>
where id=#{id}
</update>
<result column="phone" property="phone" typeHandler="xxx.xxx.xxx.typehandler.EncryptTypeHandler"/>
#{phone,typeHandler=xxx.xxx.xxx.typehandler.EncryptTypeHandler}
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 敏感字段加密
*
* @author fangzheng
*/
@Slf4j
@MappedJdbcTypes(JdbcType.VARCHAR)
public class EncryptTypeHandler extends BaseTypeHandler<String> {
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String parameter, JdbcType jdbcType) throws SQLException {
// 为空校验
if (StringUtils.isNotBlank(parameter)) {
parameter = EncryptTool.encrypt(parameter);
}
preparedStatement.setString(i, parameter);
}
@Override
public String getNullableResult(ResultSet resultSet, String columnName) throws SQLException {
return getResult(resultSet.getString(columnName));
}
@Override
public String getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException {
return getResult(resultSet.getString(columnIndex));
}
@Override
public String getNullableResult(CallableStatement callableStatement, int columnIndex) throws SQLException {
return getResult(callableStatement.getString(columnIndex));
}
/**
* 返回数据
*
* @param value
* @return
*/
private String getResult(String value) {
// 为空校验
if (StringUtils.isNotBlank(value)) {
return EncryptTool.decryptor(value);
}
return value;
}
}