mybatis多种查询方法
1. 查询单行,对象,并封装成一个对象
Employee getEmpById(Integer id);
<select id="getEmpById" resultType="com.xj.bean.Employee">
select * from t_employee where id=#{id}
</select>
2. 查询多行,对象,并封装成一个list
List<Employee> getAllEmp();
- 注意:返回值类型依旧是Employee
<select id="getAllEmp" resultType="com.xj.bean.Employee">
select * from t_employee
</select>
3. 查询单行,返回某些值,封装成map
Map<String,Object> getEmpByIdReturnMap(Integer id);
- 注意:封装成的map中,列名作为key,值作为value
<select id="getEmpByIdReturnMap" resultType="map">
select * from t_employee where id=#{id}
</select>
4. 查询多行,对象,返回一个map
注意:MapKey指定使用哪个列作为key值
@MapKey("id")
Map<Integer,Employee> getAllEmpReturnMap();
<select id="getAllEmpReturnMap" resultType="com.xj.bean.Employee">
select * from t_employee
</select>
5. 查询多行,某些值,map的map
- 这个不知道有没有更好的的方法
@MapKey("empname")
Map<Integer,Map> getEmpSomeReturnMap();
<select id="getEmpSomeReturnMap" resultType="map">
select empname,gender from t_employee
</select>
会得到:
{ccc={empname=ccc, gender=1}, zhangsan={empname=zhangsan, gender=6}}
之后对其进行解析,获取每个值,获取每个名字
Map<Integer, Map> employees = employeeDao.getAllEmpReturnMap();
for(Map map : employees.values()){
System.out.println(map);
String empname = (String)map.get("empname");
System.out.println(empname);
}
{empname=ccc, gender=1}
ccc
{empname=zhangsan, gender=6}
zhangsan
本博客文章主要供博主学习交流用,所有描述、代码无法保证准确性,如有问题可以留言共同讨论。