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();
- }
- }
- }
Mybatis 入门之resultMap与resultType讲解实例的更多相关文章
- Mybatis 入门之resultMap与resultType解说实例
resultMap:适合使用返回值是自己定义实体类的情况 resultType:适合使用返回值得数据类型是非自己定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 i ...
- mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...
- Mybatis使用时 resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,出现的次数到了令人 ...
- MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- mybatis入门,基本案例和xml讲解
mybatis入门 先举一个入门案例 1)创建一个mybatis-day01这么一个javaweb工程或java工程 2)导入mybatis和mysql/oracle的jar包到/WEB-INF/li ...
- Mybatis第七篇【resultMap、resultType、延迟加载】
resultMap 有的时候,我们看别的映射文件,可能看不到以下这么一段代码: <resultMap id="userListResultMap" type="us ...
- mybatis的resultMap与resultType的区别
一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部Res ...
- Mybatis中resultMap与resultType区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...
- Mybatis实现一对一查询 对ResultType和ResultMap分析
实现一对一查询: ResultMap:使用ResultType实现较为简单,如果pojo中没有包括查询出来的列名,需要增加 列名对应的属性,即可完成映射. 如果没有查询结果的特殊要求建议使用Resul ...
随机推荐
- IOC与AOP的理解
转自 https://blog.csdn.net/qq_38006047/article/details/80797386 1,理解“控制反转” 控制反转,也叫依赖注入,是面向对象编程中的一种设计理念 ...
- HNOI2018/AHOI2018 游戏
这题放过了暴力其实就没啥意思了 虽然暴力复杂度很玄学,但是思维水平确实没啥 Description link 题意概述:现在有一条长度为 \(n\) 的链,有些边是有限制的 限制为能到某个点,才能经过 ...
- 关于JavaWeb中Servlet的总结
Servlet知识结构图 Servlet是JavaWeb服务器端的程序,一般一个Servlet处理一种特定的请求.Servlet编写好后,需要指定其所处理的请求的请求路径,也可以认为Servlet是一 ...
- quartz2.2.1bug
quartz2.1.5 调用 scheduler.start()方法时报这样一个异常: 严重: An error occurred while scanning for the next trigge ...
- C盘满了解决办法之查看文件夹占用的统计界面
TreeSize Free软件,可以实时查看文件夹使用情况: 百度搜索: 下载安装完以后的显示界面如下:
- pandas 学习笔记【持续更新】
import numpy as np import pandas as pd import matplotlib.pyplot as plt df1 = pd.DataFrame(np.arange( ...
- C语言笔记 16_标准库&stdio&stdlib&string&time
<stdio.h> 简介 stdio .h 头文件定义了三个变量类型.一些宏和各种函数来执行输入和输出. 库变量 下面是头文件 stdio.h 中定义的变量类型: 序号 变量 & ...
- ReportingService语法
="Dear All:"& vbcrlf & vbcrlf & IIF(First(Fields!ProductFamily.Value, "bc ...
- iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码
iOS精选源码 全网最详细购物车强势来袭 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗) swift, UITableView的动态拖动重排CCPCellDragger 高仿书旗小说 Flut ...
- DataSet,DataTable排序(转载)
DataSet,DataTable排序 关于对已经绑定的DataSet的排序的问题: DataSet ds=new DataSet();DataView dv=new DataView();dv. ...