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. javaweb学习——session和Cookie实现购物车功能

    1.创建Book类,实现对图书信息的封装. package cn.it.sessionDemo.example1; import java.io.Serializable; /** * 该类实现对图书 ...

  2. Django专题

    一.   web框架的原理: 1.C/S架构和B/S架构 C/S:客户端与服务器 B/S:浏览器与服务器     web开发 2.web开发的本质: socket服务端:收发消息都是按照HTTP协议的 ...

  3. sol - 0x60,61,62

    [例题]走廊泼水节 设当前扫描到边x,y,长度为z,x所处的并查集为Sx,y所处的并查集为Sy: 对于任意u属于Sx,v属于Sy,我们可以知道u,v之间必连一条边 但是我们要在保证x,y之间的边属于唯 ...

  4. c指针(1)

    #include<stdio.h> void swap(int *a,int *b); void dummy_swap(int *a,int *b); int main() { ,d=; ...

  5. mysql Communications link failure Last packet sent to the server was X ms ago

    想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: 就是这个异常(com.mysql.jdbc.exceptions.jdbc4.Communication***ception:Commun ...

  6. 吴裕雄--天生自然 JAVA开发学习:封装

    public class Person { private String name; private int age; } public class Person{ private String na ...

  7. 十四、linux-MySQL的数据库集群读写分离及高可用性、备份等

    一.数据库集群及高可用性 二.mysql实现读写分离 mysql实现读写分离有多种方式: 1)代码语言(php\python\java等)层面实现读写分离,找开发进行实现. 2)通过软件工具实现读写分 ...

  8. jenkins_2

    1.jenkins pipline:一些列jenkins插件将整个CD(持续交付过程)用解释性代码Jenkinsfile来描述(之前的都是通过配置设置的,这次是通过file) 2.创建一个流水线任务 ...

  9. ionic3 打开相机与相册,并实现图片上传

    安装依赖项等: $ ionic cordova plugin add cordova-plugin-camera $ npm install --save @ionic-native/camera 创 ...

  10. 计划任务crond

    计划任务服务程序 计划任务分为以下两种情况:1.系统级别的定时任务:清理系统缓存临时文件清理系统信息采集日志文件切割 2.用户级别的定时任务:定时同步互联网时间定时备份系统配置文件定时备份数据库文件 ...