Mybatis 入门之resultMap与resultType讲解实例

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

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

resultMap : 

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

id:resultMap的唯一标识

column:库表的字段名

property:实体类里的属性名


配置映射文件:

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  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.   
  22.     <!-- sql语句返回值类型使用resultMap -->  
  23.     <select id="selectPersonById" parameterType="java.lang.Integer"  
  24.         resultMap="BaseResultMap">  
  25.         select * from person p where p.person_id = #{id}  
  26.     </select>  
  27.     <!-- resultMap:适合使用返回值是自定义实体类的情况   
  28.     resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型 -->  
  29.     <select id="selectPersonCount" resultType="java.lang.Integer">  
  30.         select count(*) from  
  31.         person  
  32.     </select>  
  33.   
  34.     <select id="selectPersonByIdWithMap" parameterType="java.lang.Integer"  
  35.         resultType="java.util.Map">  
  36.         select * from person p where p.person_id= #{id}  
  37.         </select>  
  38.   
  39. </mapper>  



实体类Person.java
[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  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?在CODE上查看代码片派生到我的代码片
  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.   
  11.       
  12.   
  13.     @Test  
  14.     public void selectPersonById() {  
  15.         // 创建一个sqlsession  
  16.         SqlSession session = sqlSessionFactory.openSession();  
  17.         try {  
  18.             Person p = session.selectOne(  
  19.                     "com.hao947.sql.mapper.PersonMapper.selectPersonById"1);  
  20.             System.out.println(p);  
  21.         } finally {  
  22.             session.close();  
  23.         }  
  24.     }  
  25.     @Test  
  26.     public void selectPersonCount() {  
  27.         // 创建一个sqlsession  
  28.         SqlSession session = sqlSessionFactory.openSession();  
  29.         try {  
  30.             Integer p = session.selectOne(  
  31.                     "com.hao947.sql.mapper.PersonMapper.selectPersonCount");  
  32.             System.out.println(p);  
  33.         } finally {  
  34.             session.close();  
  35.         }  
  36.     }  
  37.     @Test  
  38.     public void selectPersonByIdWithMap() {  
  39.         // 创建一个sqlsession  
  40.         SqlSession session = sqlSessionFactory.openSession();  
  41.         try {  
  42.             Map<String ,Object> map = session.selectOne(  
  43.                     "com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);  
  44.             System.out.println(map);  
  45.         } finally {  
  46.             session.close();  
  47.         }  
  48.     }  
  49. }  

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球半导体产业60年兴衰启示录!

本文来自华泰证券&#xff0c;研究员张馨元、钱海、陈莉敏&#xff0c;感谢分享&#xff01;科技是当前行业配置不能忽视的主线&#xff0c;我们在今年 5 月 10 日发布的中期策略报告《无科技不牛市&#xff0c;以时间换空间》中提出&#xff0c;5G 时代物联网技术革命带来的是…

手机上python编程工具3和3h有区别吗_Python3.5内置模块之time与datetime模块用法实例分析...

本文实例讲述了Python3.5内置模块之time与datetime模块用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 1、模块的分类 a、标准库&#xff08;Python自带&#xff09;&#xff1a;sys、os模块 b、开源模块&#xff08;第三方模块&#xff09; c、自定义模块 2、内…

华为加码布局 VR/AR趁势启航

来源&#xff1a;VR每日必看乘5G东风&#xff0c;VR/AR空间打开。随着5G的到来&#xff0c;5G高速和超低时延的特性将完美应对VR/AR发展的短板&#xff0c;商用牌照的发放将带领5G逐渐进入放量阶段&#xff0c;内外巨头均已开始大力布局。分析人士认为&#xff1a;第一阶段场景…

linux系列之常用运维命令整理笔录

本博客记录工作中需要的linux运维命令&#xff0c;大学时候开始接触linux&#xff0c;会一些基本操作&#xff0c;可是都没有整理起来&#xff0c;加上是做开发&#xff0c;不做运维&#xff0c;有些命令忘记了&#xff0c;所以现在整理成博客&#xff0c;当然vi&#xff0c;文…

Android高德地图自定义Markers的例子

下文为各位重点介绍关于Android高德地图自定义Markers的例子&#xff0c;希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法。 之前的博客里说了地图的嵌入和定位&#xff0c;今天就说说在地图上显示一些我们想要的。在地图中有自带的Markers&#xff08;标记&a…

javaweb教务管理系统_基于Java web的教务管理系统

源码编号&#xff1a;B-E00033 点击查看(分类规则)项目类型&#xff1a;Java EE项目(非开源)项目名称&#xff1a;基于Java web的教务管理系统(TeachingSystem)当前版本&#xff1a;V1.0.1版本难度等级&#xff1a;✩✩复杂程度&#xff1a;✩✩ 点击查看难度等级用户类型&…

Science揭秘:为什么“好记性不如烂笔头”?

来源&#xff1a;中国生物技术网你还能记起你小学班长的名字吗&#xff1f;但我相信你肯定能记得同桌的名字&#xff0c;和与其共同经历的种种。但要再问你昨天新来同事的名字&#xff0c;你是否可以不假思索的回答出来&#xff1f;是不是有点儿困难&#xff1f;那为什么你能脱…

中国机器人产业发展报告(2019)正式发布!

来源&#xff1a;世界机器人大会2019年8月25日&#xff0c;《中国机器人产业发展报告&#xff08;2019&#xff09;》于2019世界机器人大会闭幕式上正式发布&#xff0c;该报告为工业和信息化部2019-2021年财政专项《我国机器人产业发展水平评估体系构建与智能机器人产业链增长…

matlab/ansys协同的一个例子

前段时间找了点Matlab与ANSYS协同工作的资料&#xff0c;在我看来所谓协同是ANSYS将结果写到文件然后Matlab读&#xff0c;或者Matlab写数据到文件ANSYS读&#xff0c;协同是通过读写文件实现的。我找了个瞬态分析的例子&#xff0c;写了APDL&#xff0c;将网上找到的ANSYS结果…

security center拒绝访问_Steam被曝出0day提权漏洞,但厂商拒绝修复

近期&#xff0c;全球流行的Steam游戏客户端被曝出0day提权漏洞&#xff0c;影响全球一亿多Steam用户。该漏洞可让机器上的低权限用户以SYSTEM权限运行程序。这意味着恶意软件很可能利用这个漏洞对受害者的机器进行深度破坏。考虑到Steam是一款总用户1.2亿&#xff0c;日常在线…

人工智能第一股“旷视科技”赴港递交IPO材料 半年亏损52亿估值280亿

来源&#xff1a; 人工智能和大数据8月25日&#xff0c;人工智能领域“独角兽”旷视科技正式向港交所递交IPO材料。招股书显示&#xff0c;旷视拟采用“同股不同权”方式上市&#xff0c;“同股不同权”股东为创始人兼CEO印奇以及两位联合创始人唐文斌、杨沐&#xff0c;三人占…

python可以代替plc吗_PLC可以代替安全控制器吗?电气工程师告诉你

导读 国内的企业越来越重视设备的安全防护&#xff0c;可事故却频频发生&#xff0c;这是为什么呢&#xff1f;主要还是源自于大家对于安全防护知识上存在的诸多误区&#xff0c;比如很多人认为&#xff0c;稳定性高、性能强的PLC即可替代安全控制器的作用&#xff0c;其实这就…

Nature展示迄今为止最详细的“人脑零部件清单”

来源&#xff1a;中国生物技术网近日&#xff0c;美国艾伦脑科学研究所的一项新研究为我们展示了迄今为止最详细的“人脑零部件清单”&#xff0c;阐明了人类大脑皮层的细胞结构&#xff0c;它对于理解我们的认知能力和对疾病的易感性至关重要。该研究近日已发表在《Nature》上…

beautifulsoup网页爬虫解析_爬虫第三天——初识Xpath

解析神器Xpath&#xff1a;1. 什么是XpathXPath即为XML路径语言&#xff08;XML Path Language&#xff09;&#xff0c;它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构&#xff0c;提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一…

机器人4.0时代来临!四大核心技术助推大规模商用部署

来源&#xff1a;北京物联网智能技术应用协会当前&#xff0c;全球机器人市场规模持续扩大&#xff0c;工业机器人市场增速稳定&#xff0c;服务机器人增速突出。2018 年&#xff0c;全球机器人市场规模达 298.2 亿美元&#xff0c; 2013-2018 年的平均增长率约为 15.1%。 在装…

Chapter2 MSP430硬件结构

1、总架构 MSP430单片机采用冯诺依曼结构&#xff0c;包含16位RISC CPU、存储器、片内外设、时钟系统、仿真系统以及数据总线和地址总线。 2、MSP430X CPU(CPUX) DB    AB          ALU位数 MSP430F1XX 16位  16位(最大寻址64KB) …

Matlab给Ansys助攻

大家好&#xff0c;今天二狗准备介绍一下如何利用matlab写一些简单的脚本去解决一些复杂的事情&#xff0c;比如为大型有限元软件Ansys服务&#xff08;类比&#xff09;包括数值模拟的前处理和后处理&#xff0c;都大有作为。用过Ansys&#xff08;没有Ctrlz&#xff09;的童鞋…

归并排序的时间复杂度为什么为nlogn

归并排序的递归过程如下&#xff0c;该递归树的高度为log2n&#xff08;计算过程&#xff1a;假设待排序的数组元素个数为n&#xff0c;设高度为x&#xff0c;x意味着n个元素需要连续二分x次才剩下1个元素&#xff0c;即n/2^x1&#xff0c;xlog2n&#xff09;&#xff0c;每一层…

深度解读达芬奇架构:华为AI芯片的“秘密武器”

本文转自华为官网2019年6月&#xff0c;华为发布全新8系列手机SoC芯片麒麟810&#xff0c;首次采用华为自研达芬奇架构NPU&#xff0c;实现业界领先端侧AI算力&#xff0c;在业界公认的苏黎世联邦理工学院推出的AI Benchmark榜单中&#xff0c;搭载麒麟810的手机霸榜TOP3&#…

记忆化搜索 codevs 2241 排序二叉树

codevs 2241 排序二叉树 ★ 输入文件&#xff1a;bstree.in 输出文件&#xff1a;bstree.out 简单对比时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB 【问题描述】 一个边长为n的正三角形可以被划分成若干个小的边长为1的正三角形&#xff0c;称为单位三角形。 …