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

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

resultMap :

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

id:resultMap的唯一标识

column:库表的字段名

property:实体类里的属性名

配置映射文件:

  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

  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. }

测试类

  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. }

Mybatis 入门之resultMap与resultType讲解实例的更多相关文章

  1. Mybatis 入门之resultMap与resultType解说实例

    resultMap:适合使用返回值是自己定义实体类的情况 resultType:适合使用返回值得数据类型是非自己定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 i ...

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

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

  3. Mybatis使用时 resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型  resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,出现的次数到了令人 ...

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

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

  5. mybatis入门,基本案例和xml讲解

    mybatis入门 先举一个入门案例 1)创建一个mybatis-day01这么一个javaweb工程或java工程 2)导入mybatis和mysql/oracle的jar包到/WEB-INF/li ...

  6. Mybatis第七篇【resultMap、resultType、延迟加载】

    resultMap 有的时候,我们看别的映射文件,可能看不到以下这么一段代码: <resultMap id="userListResultMap" type="us ...

  7. mybatis的resultMap与resultType的区别

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

  8. Mybatis中resultMap与resultType区别

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

  9. Mybatis实现一对一查询 对ResultType和ResultMap分析

    实现一对一查询: ResultMap:使用ResultType实现较为简单,如果pojo中没有包括查询出来的列名,需要增加 列名对应的属性,即可完成映射. 如果没有查询结果的特殊要求建议使用Resul ...

随机推荐

  1. Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore , Condition

    http://www.importnew.com/21889.html 1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDown ...

  2. D. Minimax Problem(二分+二进制)

    D. Minimax Problem time limit per test 5 seconds memory limit per test 512 megabytes input standard ...

  3. Python重学记录1

    写下这个标题觉得可笑,其实本人2014年就自学过一次python,当时看的是中谷教育的milo老师的视频,也跟着写了一些代码,只是因为当时工作上用不到也就淡忘了.不过说实话当时的水平也很低下,本来也没 ...

  4. python编程:从入门到实践----第四章>操作列表

    一.遍历整个列表 1-1.假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来. # 用for循环来打印魔术师名单中的名字 magicians=['alice','david','carolin ...

  5. 1. 模块化的引入与导出 (commonJS规范 和ES6规范)

    node组件导出模块 node一般用commonJS规范 可以通过module.exports导出自己写的模块 这样其他的js文件就可以引用并使用这个模块 module.exports = { log ...

  6. vuex的优缺点

    vuex的优点 1.解决了非父子组件的消息传递(将数据存放在state中) 2.减少了AJAX请求次数,有些情景可以直接从内存中的state获取 vuex的缺点 1.刷新浏览器,vuex中的state ...

  7. js分页的一些思考

    一两年之前在写java的时候,分页的逻辑是写在后端的,用java去实现,jsp是动态展示页码和数据.但是对于一个用ajax加载的分页数据来说,分页的逻辑必须也在前端完成,那么就不得不去思考一下在js里 ...

  8. 如何使用keras加载下载好的数据集

    https://blog.csdn.net/houchaoqun_xmu/article/details/78492718 [keras]解决 example 案例中 MNIST 数据集下载不了的问题 ...

  9. JavaScript学习笔记 - 进阶篇(6)- JavaScript内置对象

    什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...

  10. Python笔记_第三篇_面向对象_2.第一个Python类

    1. 设计一个类: 设计一个类主要从三个方面进行考虑: 第一:类名:类名要见名知意.首字母大写. 第二:属性. 第三:方法. 备注:在Python中有些东西并不是绝对化的事情,有些根据Python社区 ...