Mybatis映射配置文件<select>的学习
resultMap的使用
当查询的表的列名与实体类的属性名不同时,有三种方式来处理:
1、使用SQL的别名 如:select user_name userName from user
2、如果符合驼峰命名,在setting中开启mapUnderscoreToCamelCase
3、设置resultMap,自定义结果集映射规则,不能和resultType同时使用
例:
Type指定映射实体类
<resultMap id="BaseResultMap" type="com.cky.pojo.User" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
<select>返回集合
返回List
如果返回的是一个集合,ResultType返回值类型依然要写集合中元素的类型
返回Map
<select>返回一条记录的map,key就是列名,值就是对应的值
一条记录时 设置 resultType=”map”
多条记录时 设置 resultType=”Entity”一条记录的实体类,方法添加@MapKey(“id”)指定哪个属性作为map的key
<select>级联查询1:1
Sql使用多表关联查询,然后指定resultMap 如下:
方法一、
<resultMap id="BaseResultMap" type="com.cky.pojo.User" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<result column=”c_id” property=”course.id”>
<result column=”c_name” property=”course.name”>
</resultMap>
方法二、
<resultMap type="DifResultMap" id="com.cky.pojo.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<association property="course" javaType="com.cky.pojo.Course">
<id column="c_id" property="cId" />
<result column="c_name" property="cName"/>
</association>
</resultMap>
方法三、分步查询:使用select指定的方法(传入column指定的这列参数的值)查出对象,并封装给property
<resultMap type="StepResultMap" id="com.cky.pojo.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<!-- association中指定某一select的查询结果作为property指定的对象 -->
<association property="course" select="com.cky.dao.getCourse"
column="c_id">
</association>
</resultMap>
优点,可以使用延迟加载,开启方式:设置setting的
lazyLoadingEnabled true
aggressiveLazyLoading false
显式的配置可以防止版本更新带来的问题
<select>级联查询1:n
方法一、嵌套结果集,sql使用连接查询
<mapper namespace="com.cky.dao.CourseDao"> <resultMap type="com.cky.pojo.Course" id="myCourse"> <id column="c_id" property="cId"/> <result column="c_name" property="cName"/> <collection property="students" ofType="com.cky.pojo.Student"> <id column="id" property="id"/> <result column="user_name" property="userName"/> <result column="password" property="password"/> <result column="age" property="age"/> </collection> </resultMap> </mapper>
方法二、分步查询
<mapper namespace="com.cky.dao.CourseDao"> <resultMap type="com.cky.pojo.Course" id="myCourse"> <id column="c_id" property="cId"/> <result column="c_name" property="cName"/> <collection perperty=”students” Select=”com.cky.dao.Student.getStudentByCId” Column=”c_id” </collection> </resultMap> </mapper>
Mybatis映射配置文件<select>的学习的更多相关文章
- 详解mybatis映射配置文件
一 mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...
- Mybatis基础:Mybatis映射配置文件,Mybatis核心配置文件,Mybatis传统方式开发
一.Mybatis快速入门 1.1 框架介绍 框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求! 框架:大工具,我们利用工具,可以快速开发项目 (mybatis也是一个 ...
- MyBatis映射配置文件详解
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-// ...
- 使用generator自动生成Mybatis映射配置文件
在使用mybatis时,映射文件的配置非常麻烦,对于做逻辑不是很复杂,功能不是特别关键的模块的时候,我们没有必要手动书写,可以使用generator工具生成. generator工具实际上就是根据数据 ...
- Mybatis映射配置文件Mapper.xml详解
1.概述: MyBatis 的真正强大在于它的映射语句,也是它的魔力所在. 2.常用的属性 常用的几个属性: select元素:代表查询,类似的还有update.insert.delete id:这个 ...
- mybatis xml配置文件模版
mybatis xml配置文件模版 1.mybatis核心配置文件书写(SqlMapConfig.xml) <?xml version="1.0" encoding=&quo ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
- Mybatis学习--XML映射配置文件
学习笔记,选自Mybatis官方中文文档:http://www.mybatis.org/mybatis-3/zh/configuration.html MyBatis 的配置文件包含了影响 MyBat ...
- Java数据持久层框架 MyBatis之API学习三(XML 映射配置文件)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
随机推荐
- Delphi StringReplace – 替换字符函数
Delphi StringReplace – 替换字符函数 Delphi中的StringReplace函数是SysUtils单元中自带的函数,该函数可以替换字符串中的指定字符. 1 2 3 4 5 6 ...
- bzoj2656
题目链接:传送门 题目大意:已知 a0=0:a1=1: n为偶数 an=a(n/2):n为基数 an=a(n/2)+a(n/2+1): 题目思路:因为n过大,所以要用java高精度,还有最多20组数据 ...
- selenium 方法导图
- Thrift快速入门
Thrift 简单示例 2017-01-19 16:47:57 首先通过先面两个示例简单感受一下Thrift(RPC)服务端与客户端之间的通信...... RPC学习----Thrift快速入门和Ja ...
- 云计算之路:2009年Xen一个补丁背后那不为人知的故事
仔细阅读了http://www.cnblogs.com/cmt/p/3729386.html这篇关于xen的博文,这篇博文写的挺赞的,分析的也很细致,涉及到4年前的一个patch的故事.在讲这个故事之 ...
- php 正则表达式一.函数解析
php正则表达式官方手册参考....... 一.php中 常用的正则表达式函数 1.preg_match与preg_match_all preg_match: 函数信息 preg_match_all: ...
- flink hadoop yarn
新一代大数据处理引擎 Apache Flink https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-flink/ 新一代大数据处 ...
- cocos2d 场景切换和弹出场景、收回场景
场景弹出收回很简单 用以下代码在任意一个地方显示“设置场景”: [[CCDirector sharedDirector] pushScene:[Settings scene]]; 如果你身处“设置场景 ...
- 初级dba学习之路参考
今天周一拖着疲惫的身躯 11点才离开公司,回到家估计写完这篇博客就要17号了. 一个人走在回家的路上,很黑,突然很多感触,一个人在北京拼搏,不敢停止学习的脚步,因为只要停下来就会感觉到孤独. 回顾一下 ...
- 003-基于URL的权限管理[不使用shiro]
一.基于url权限管理流程[实现步骤] 基于url拦截是企业中常用的权限管理方法,实现思路是:将系统操作的每个url配置在权限表中,将权限对应到角色,将角色分配给用户,用户访问系统功能通过Filter ...