发表于: 2018-01-13 22:38:13
0 641
今天做的事情:
完成后台用户管理列表模块,和查看一条用户。
工具类中类似这种的:
根据id或者别的参数,使用map来组合参数拼接sql查询。公司的jar包里面全部都封装好了
/**
* 根据邮箱来查用户(用于判断手机号码是否重复)
* @param
* @param
* @author Jeff
* @Date 2017-11-17
*/
public static Map<String, Object> getUserByMail(String mailAddress) {
Map<String, Object> params = new HashMap<String, Object>();
log.info("从user表中动态查询");
params.put("mail", "'" + mailAddress + "'");
params.put("@query", " id ");
params.put("@table", "user");
log.info("getProfessionTagsList sql is " + SQLUtil.convert2Sql(params, 0, 0));
return params;
}
如果使用mybatis,动态sql。
if choose trim where set foreach 等
- <select id="dynamicWhereTest" parameterType="Blog" resultType="Blog">
- select * from t_blog
- <where>
- <if test="title != null">
- title = #{title}
- </if>
- <if test="content != null">
- and content = #{content}
- </if>
- <if test="owner != null">
- and owner = #{owner}
- </if>
- </where>
- </select>
where元素的作用是会在写入where元素的地方输出一个where,另外一个好处是你不需要考虑where元素里面的条件输出是什么样子的,MyBatis会智能的帮你处理,如果所有的条件都不满足那么MyBatis就会查出所有的记录,如果输出后是and 开头的,MyBatis会把第一个and忽略,当然如果是or开头的,MyBatis也会把它忽略;此外,在where元素中你不需要考虑空格的问题,MyBatis会智能的帮你加上。像上述例子中,如果title=null, 而content != null,那么输出的整个语句会是select * from t_blog where content = #{content},而不是select * from t_blog where and content = #{content},因为MyBatis会智能的把首个and 或 or 给忽略。
一般情况公司都会有各自的工具类,有些负责的还是要手写,注意下、
今天做了动态sql,和冻结解冻操作,都比较容易,就看后期发布出去,看前端代码交互了。
遇到的问题:
无
收获:
完成用户列表,查看,冻结,解冻,多条件查询。
评论