mybatis做查询时需要注意的

2018-12-20  本文已影响12人  回不去的那些时光

mapper.xml中字段名和参数名不能一样

今天用mybatis写了个查询,发现将数据注入到mapper.xml时一直注入不进去,花了好长时间才搞好。
原来是mapper.xml中字段名和参数名不能一样
例如:

     @PostMapping("/login")
     public Map Login(@RequestBody Map<String,Object> reqMap) {
         Map map = new HashMap();
         String username = reqMap.get("username").toString();
         String password = reqMap.get("password").toString();
         Admin admin1 = new Admin();
         try {
             admin1 = adminService.login(username,password);
             if(admin1 != null) {
                 map.put("status", 200);
                 map.put("admin", admin1);
             }else {
                 map.put("status", 204);
                 map.put("msg", "用户名或密码错误!");
             }
         } catch(Exception e) {
             System.out.print("err");
         }
         return map;
     }
<select id="findByUsernameAndPassword" resultType="com.blog.entity.Admin">
    select * from admin where username=#{param1} and password=#{param2}
  </select>

_parameter当做参数

 <select id="findAll" resultType="com.blog.entity.Classify">
    select id,name classifyName from classify where 1=1
    <if test = '_parameter != ""'>
      and name=#{_parameter}
    </if>
  </select>

当列名和实体类字段名不一样时

当列明和实体类字段名不一样时,往往会查不到值,这个时候可以在查询时使用别名的方式

上一篇 下一篇

猜你喜欢

热点阅读