MyBatis学习笔记 |
您所在的位置:网站首页 › mybatis查询多个字段 › MyBatis学习笔记 |
查询返回HashMap介绍查询一条数据1.sql语句编写样式2.接口编写格式
查询多条数据1.sql语句编写样式2.接口编写格式
鉴别器的运用介绍
查询返回HashMap介绍
介绍:有时候就想通过HashMap返回sql查询的值,然后最近也终于学到了设置返回类型为HashMap类型,如何建立sql语句以及接口方法的书写问题;不过目前觉得一般吧;
查询一条数据
1.sql语句编写样式
select stuNo ,stuName ,stuAge
from student where stuNo = #{stuNo}
2.接口编写格式
HashMap queryStudentByHashMap(int stuNo);
然后就可以通过调用方法接口获得相应的信息了; 但是,有时候想查询多条数据,使用该方法就不行了,为啥? 一个很明显的逻辑原因就是HashMap中的K是唯一的,以上方式是将 stuNo ,stuName ,stuAge 作为KEY,而相应的值作为value; 而MyBatis也考虑到了返回值是HashMap,而需要返回接收多个数据的问题,主要是通过pojo类以及@MapKey("")指定,以下是HashMap多值接收: 查询多条数据 1.sql语句编写样式 select stuNo ,stuName ,stuAge from student 2.接口编写格式 //获取多值 @MapKey("stuNo") HashMap queryStudentsByHashMap();这样就行了,不过注意的是,调用接口该方法的时候,要注意接收的一方也要是 ,如果是的话接收不了;如果stuNo是字符串,则是; 建议就是stuNo是主键或则唯一约束,不然会出现覆盖掉的情况; 嗯~,这样其实用类包装更好了,然后用List进行接收多个; 鉴别器的运用介绍鉴别器discriminator的设置是在resultMap里面的,主要是根据查询的结果进行分支处理和if分支语句有点类似; 例如Student中的变量有:stuNo,stuName,stuAge,graName四个;而student表中有sno,sname,sage,gname,nickname;然后设定以gname为判断标准,如果是班级是“a”,则stuName对应真名,如果是“b”,stuName对应昵称; select sno, sname,nickname, sage, gname from student然后就根据班级来区分使用真名和昵称了; 最后附上: ResultMap的所有属性以及含义 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |