发表于: 2018-01-13 22:38:13

0 640


今天做的事情:


                  完成后台用户管理列表模块,和查看一条用户。


                  工具类中类似这种的:


                    根据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 等


               

  1. <select id="dynamicWhereTest" parameterType="Blog" resultType="Blog">    
  2.     select * from t_blog     
  3.     <where>    
  4.         <if test="title != null">    
  5.             title = #{title}    
  6.         </if>    
  7.         <if test="content != null">    
  8.             and content = #{content}    
  9.         </if>    
  10.         <if test="owner != null">    
  11.             and owner = #{owner}    
  12.         </if>    
  13.     </where>    
  14. </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,和冻结解冻操作,都比较容易,就看后期发布出去,看前端代码交互了。



             






遇到的问题:


                  无



收获:


               完成用户列表,查看,冻结,解冻,多条件查询。















                 


返回列表 返回列表
评论

    分享到