Mybatis 返回值类型

亦凉 2024-02-18 16:30 144阅读 0赞

MyBatis的返回参数类型分两种

  1. 对应的分类为:

resultMap:

resultType:

2 .对应返回值类型:

resultMap:结果集

resultType:int,string ,long ,class

  1. 注意点:

在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。

当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时
候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。

当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

  1. 当返回类型直接是一个ResultMap的时候也是非常有用的,这主要用在进行复杂联合查询上,因为进行简单查询是没有什么必要的
  2. <resultMap type="com.dw.entity.User" id="UserMap">
  3. <result column="username" property="username"/>
  4. <result column="password" property="password"/>
  5. </resultMap>
  6. <select id="selectMap" resultMap="UserMap">
  7. select * from user
  8. </select> @Test
  9. public void testSelectMap(){
  10. init();
  11. @SuppressWarnings("unchecked")
  12. List<User> list = userDao.selectMap();
  13. session.commit();
  14. for (User user : list) {
  15. System.out.println(user);
  16. }
  17. destory();
  18. } public List selectMap(); 当然这里用resultType同样可以完成,resultMap的优势主要在于联合查询
  19. 获取记录总数count(*):
  20. <select id="countUser" resultType="int">
  21. select count(*) from user
  22. </select> @Test
  23. public void testCountUser(){
  24. init();
  25. int count = userDao.countUser();
  26. session.commit();
  27. System.out.println("count:"+count);
  28. destory();
  29. } 初始化和“善后处理”: private void init(){
  30. try {
  31. inputStream = Resources.getResourceAsStream("config.xml");
  32. sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  33. session = sessionFactory.openSession();
  34. userDao = session.getMapper(UserDao.class);
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. private void destory(){
  40. if(session != null){
  41. session.close();
  42. }
  43. if(inputStream != null){
  44. try {
  45. inputStream.close();
  46. } catch (IOException e) {
  47. e.printStackTrace();
  48. }
  49. }
  50. }

发表评论

表情:
评论列表 (有 0 条评论,144人围观)

还没有评论,来说两句吧...

相关阅读