1. 程式人生 > 實用技巧 >mybatis多種查詢方法

mybatis多種查詢方法

  1. 查詢單行,並封裝成一個物件
    Employee getEmpById(Integer id);
    <select id="getEmpById" resultType="com.xj.bean.Employee">
        select * from t_employee where id=#{id}
    </select>
  1. 查詢多行,並封裝成一個list
    List<Employee> getAllEmp();
  • 注意:返回值型別依舊是Employee
   <select id="getAllEmp" resultType="com.xj.bean.Employee">
        select * from t_employee
    </select>
  1. 查詢單行,返回某些值,封裝成map
    Map<String,Object> getEmpByIdReturnMap(Integer id);
  • 注意:封裝成的map中,列名作為key,值作為value
    <select id="getEmpByIdReturnMap" resultType="map">
        select * from t_employee where id=#{id}
    </select>
  1. 查詢多行,物件,返回一個map
    注意:MapKey指定使用哪個列作為key值
@MapKey("id")
Map<Integer,Employee> getAllEmpReturnMap();
    <select id="getAllEmpReturnMap" resultType="com.xj.bean.Employee">
        select * from t_employee
    </select>
  1. 查詢多行,某些值
  • 這個不知道有沒有更好的的方法
@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