resultMap:适合使用返回值是自定义实体类的情况

resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型

resultMap :

type:映射实体类的数据类型

id:resultMap的唯一标识

column:库表的字段名

property:实体类里的属性名

配置映射文件:

[java] view plaincopyprint?
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!-- namespace:当前库表映射文件的命名空间,唯一的不能重复 -->
  6. <mapper namespace="com.hao947.sql.mapper.PersonMapper">
  7. <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->
  8. <resultMap type="person" id="BaseResultMap">
  9. <!-- column:库表的字段名 property:实体类里的属性名 -->
  10. <id column="person_id" property="personId" />
  11. <result column="name" property="name" />
  12. <result column="gender" property="gender" />
  13. <result column="person_addr" property="personAddr" />
  14. <result column="birthday" property="birthday" />
  15. </resultMap>
  16. <!--id:当前sql的唯一标识
  17. parameterType:输入参数的数据类型
  18. resultType:返回值的数据类型
  19. #{}:用来接受参数的,如果是传递一个参数#{id}内容任意,如果是多个参数就有一定的规则,采用的是预编译的形式select
  20. * from person p where p.id = ? ,安全性很高 -->
  21. <!-- sql语句返回值类型使用resultMap -->
  22. <select id="selectPersonById" parameterType="java.lang.Integer"
  23. resultMap="BaseResultMap">
  24. select * from person p where p.person_id = #{id}
  25. </select>
  26. <!-- resultMap:适合使用返回值是自定义实体类的情况
  27. resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型 -->
  28. <select id="selectPersonCount" resultType="java.lang.Integer">
  29. select count(*) from
  30. person
  31. </select>
  32. <select id="selectPersonByIdWithMap" parameterType="java.lang.Integer"
  33. resultType="java.util.Map">
  34. select * from person p where p.person_id= #{id}
  35. </select>
  36. </mapper>

实体类Person.java

[java] view plaincopyprint?
  1. <pre name="code" class="java">package com.hao947.model;
  2. import java.util.Date;
  3. public class Person {
  4. private Integer personId;
  5. private String name;
  6. private Integer gender;
  7. private String personAddr;
  8. private Date birthday;
  9. @Override
  10. public String toString() {
  11. return "Person [personId=" + personId + ", name=" + name + ", gender="
  12. + gender + ", personAddr=" + personAddr + ", birthday="
  13. + birthday + "]";
  14. }
  15. }

测试类

[java] view plaincopyprint?
  1. public class PersonTest {
  2. SqlSessionFactory sqlSessionFactory;
  3. @Before
  4. public void setUp() throws Exception {
  5. // 读取资源流
  6. InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
  7. // 初始化session工厂
  8. sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
  9. }
  10. @Test
  11. public void selectPersonById() {
  12. // 创建一个sqlsession
  13. SqlSession session = sqlSessionFactory.openSession();
  14. try {
  15. Person p = session.selectOne(
  16. "com.hao947.sql.mapper.PersonMapper.selectPersonById", 1);
  17. System.out.println(p);
  18. } finally {
  19. session.close();
  20. }
  21. }
  22. @Test
  23. public void selectPersonCount() {
  24. // 创建一个sqlsession
  25. SqlSession session = sqlSessionFactory.openSession();
  26. try {
  27. Integer p = session.selectOne(
  28. "com.hao947.sql.mapper.PersonMapper.selectPersonCount");
  29. System.out.println(p);
  30. } finally {
  31. session.close();
  32. }
  33. }
  34. @Test
  35. public void selectPersonByIdWithMap() {
  36. // 创建一个sqlsession
  37. SqlSession session = sqlSessionFactory.openSession();
  38. try {
  39. Map<String ,Object> map = session.selectOne(
  40. "com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);
  41. System.out.println(map);
  42. } finally {
  43. session.close();
  44. }
  45. }
  46. }

转载于:https://www.cnblogs.com/archermeng/p/7537407.html

Mybatis 入门之resultMap与resultType讲解实例相关推荐

  1. mybatis中的resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...

  2. MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别

    MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...

  3. mybatis中resultMap和resultType的详细用法

    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接 表示返回类型的,而resultMap则是对外部Result ...

  4. 【Mybatis框架】输出映射-resultType与resultMap

    为什么80%的码农都做不了架构师?>>>    输出映射 接下来说说有关Mapper.xml配置文件中查询标签中关于返回值类型resultType与resultMap的一些内容 1. ...

  5. mybatis中resultMap和resultType区别,三分钟读懂

    先说结论: resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同. 说人话就是,resultmap和resulttype功能差不多,但是resultmap功能更强大 re ...

  6. Mybatis中resultMap和resultType

    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接 表示返回类型的,而resultMap则是对外部Result ...

  7. 【MyBatis】resultMap和resultType的区别

    mybatis中resultMap和resultType的区别 mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resultType是 ...

  8. Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

    本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...

  9. Mybatis入门从新手村到打低级野怪

    课程目标 搭建MyBatis开发环境 完成基于注解,单表增删改查操作 完成基于注解,多表增删改查操作 完成基于通用Mapper,单表增删改查操作 完成分页操作 完成基于XML,单表增删改查操作 完成基 ...

最新文章

  1. (C++)字符数组的四种输入输出方式
  2. 计算机四级操作系统原理知识汇总,2015年全国计算机四级《操作系统原理》考试内容...
  3. c语言是字符串123变112233,Objective C学习第四节:OC里面的字符串和数值
  4. visual studio visual studio 2005 快捷键大全
  5. KMeans聚类算法Hadoop实现
  6. sql 2008 R2添加对MySql的远程服务器链接
  7. 随想录(学习英文的好处)
  8. 前后端分离的用户验证原理及Spring Boot + JWT的框架搭建(附完整的框架代码)之一
  9. jquery 文本编辑器插件
  10. 程序员客栈(项目简介)
  11. TIF转PDF--itextpdf
  12. 舞蹈课(2020NOIP)
  13. python解释器中help的用法
  14. 考勤统计表sql 某个项目在某个月的考勤统计
  15. MetaFun 小传
  16. PTA——是不是太胖了
  17. Android 生成二维码
  18. Bugku旧平台misc writeup
  19. 求佩波拉切数列的前20项
  20. 2022飞鱼科技-鱼苗夏令营实习-游戏客户端-终面(高管面)已挂

热门文章

  1. java 设计一个动物类_Java课程设计(动物换位)
  2. linux 安装mysql5.7.12_Linux系统上安装mysql5.7.12
  3. JavaScript高级之构造函数和原型
  4. LintCode MySQL 1928. 网课上课情况分析 I
  5. LeetCode 552. 学生出勤记录 II(动态规划)
  6. LeetCode 第 25 场双周赛(718/1832,前39.2%)
  7. LeetCode 337. 打家劫舍 III(记忆化+递归)
  8. python是动态_1.2. Python是动态语言
  9. 爬虫必须学会的正则表达式
  10. python之数据库连接