Mybatis 入门之resultMap与resultType讲解实例
resultMap:适合使用返回值是自定义实体类的情况
resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型
resultMap :
type:映射实体类的数据类型
id:resultMap的唯一标识
column:库表的字段名
property:实体类里的属性名
配置映射文件:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <!-- namespace:当前库表映射文件的命名空间,唯一的不能重复 -->
- <mapper namespace="com.hao947.sql.mapper.PersonMapper">
- <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->
- <resultMap type="person" id="BaseResultMap">
- <!-- column:库表的字段名 property:实体类里的属性名 -->
- <id column="person_id" property="personId" />
- <result column="name" property="name" />
- <result column="gender" property="gender" />
- <result column="person_addr" property="personAddr" />
- <result column="birthday" property="birthday" />
- </resultMap>
- <!--id:当前sql的唯一标识
- parameterType:输入参数的数据类型
- resultType:返回值的数据类型
- #{}:用来接受参数的,如果是传递一个参数#{id}内容任意,如果是多个参数就有一定的规则,采用的是预编译的形式select
- * from person p where p.id = ? ,安全性很高 -->
- <!-- sql语句返回值类型使用resultMap -->
- <select id="selectPersonById" parameterType="java.lang.Integer"
- resultMap="BaseResultMap">
- select * from person p where p.person_id = #{id}
- </select>
- <!-- resultMap:适合使用返回值是自定义实体类的情况
- resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型 -->
- <select id="selectPersonCount" resultType="java.lang.Integer">
- select count(*) from
- person
- </select>
- <select id="selectPersonByIdWithMap" parameterType="java.lang.Integer"
- resultType="java.util.Map">
- select * from person p where p.person_id= #{id}
- </select>
- </mapper>
实体类Person.java
- <pre name="code" class="java">package com.hao947.model;
- import java.util.Date;
- public class Person {
- private Integer personId;
- private String name;
- private Integer gender;
- private String personAddr;
- private Date birthday;
- @Override
- public String toString() {
- return "Person [personId=" + personId + ", name=" + name + ", gender="
- + gender + ", personAddr=" + personAddr + ", birthday="
- + birthday + "]";
- }
- }
测试类
- public class PersonTest {
- SqlSessionFactory sqlSessionFactory;
- @Before
- public void setUp() throws Exception {
- // 读取资源流
- InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
- // 初始化session工厂
- sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
- }
- @Test
- public void selectPersonById() {
- // 创建一个sqlsession
- SqlSession session = sqlSessionFactory.openSession();
- try {
- Person p = session.selectOne(
- "com.hao947.sql.mapper.PersonMapper.selectPersonById", 1);
- System.out.println(p);
- } finally {
- session.close();
- }
- }
- @Test
- public void selectPersonCount() {
- // 创建一个sqlsession
- SqlSession session = sqlSessionFactory.openSession();
- try {
- Integer p = session.selectOne(
- "com.hao947.sql.mapper.PersonMapper.selectPersonCount");
- System.out.println(p);
- } finally {
- session.close();
- }
- }
- @Test
- public void selectPersonByIdWithMap() {
- // 创建一个sqlsession
- SqlSession session = sqlSessionFactory.openSession();
- try {
- Map<String ,Object> map = session.selectOne(
- "com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);
- System.out.println(map);
- } finally {
- session.close();
- }
- }
- }
转载于:https://www.cnblogs.com/archermeng/p/7537407.html
Mybatis 入门之resultMap与resultType讲解实例相关推荐
- mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...
- MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- mybatis中resultMap和resultType的详细用法
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接 表示返回类型的,而resultMap则是对外部Result ...
- 【Mybatis框架】输出映射-resultType与resultMap
为什么80%的码农都做不了架构师?>>> 输出映射 接下来说说有关Mapper.xml配置文件中查询标签中关于返回值类型resultType与resultMap的一些内容 1. ...
- mybatis中resultMap和resultType区别,三分钟读懂
先说结论: resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同. 说人话就是,resultmap和resulttype功能差不多,但是resultmap功能更强大 re ...
- Mybatis中resultMap和resultType
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接 表示返回类型的,而resultMap则是对外部Result ...
- 【MyBatis】resultMap和resultType的区别
mybatis中resultMap和resultType的区别 mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resultType是 ...
- Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门
本章将涵盖以下话题: ž MyBatis是什么? ž 为什么选择MyBatis? ž MyBatis安装配置 ž 域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...
- Mybatis入门从新手村到打低级野怪
课程目标 搭建MyBatis开发环境 完成基于注解,单表增删改查操作 完成基于注解,多表增删改查操作 完成基于通用Mapper,单表增删改查操作 完成分页操作 完成基于XML,单表增删改查操作 完成基 ...
最新文章
- (C++)字符数组的四种输入输出方式
- 计算机四级操作系统原理知识汇总,2015年全国计算机四级《操作系统原理》考试内容...
- c语言是字符串123变112233,Objective C学习第四节:OC里面的字符串和数值
- visual studio visual studio 2005 快捷键大全
- KMeans聚类算法Hadoop实现
- sql 2008 R2添加对MySql的远程服务器链接
- 随想录(学习英文的好处)
- 前后端分离的用户验证原理及Spring Boot + JWT的框架搭建(附完整的框架代码)之一
- jquery 文本编辑器插件
- 程序员客栈(项目简介)
- TIF转PDF--itextpdf
- 舞蹈课(2020NOIP)
- python解释器中help的用法
- 考勤统计表sql 某个项目在某个月的考勤统计
- MetaFun 小传
- PTA——是不是太胖了
- Android 生成二维码
- Bugku旧平台misc writeup
- 求佩波拉切数列的前20项
- 2022飞鱼科技-鱼苗夏令营实习-游戏客户端-终面(高管面)已挂
热门文章
- java 设计一个动物类_Java课程设计(动物换位)
- linux 安装mysql5.7.12_Linux系统上安装mysql5.7.12
- JavaScript高级之构造函数和原型
- LintCode MySQL 1928. 网课上课情况分析 I
- LeetCode 552. 学生出勤记录 II(动态规划)
- LeetCode 第 25 场双周赛(718/1832,前39.2%)
- LeetCode 337. 打家劫舍 III(记忆化+递归)
- python是动态_1.2. Python是动态语言
- 爬虫必须学会的正则表达式
- python之数据库连接