文档章节

MyBatis配置一对一

思想永无止境
 思想永无止境
发布于 2016/11/04 11:59
字数 199
阅读 1
收藏 0

表结构:

CREATE TABLE `user`( id INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(20) );
CREATE TABLE user_info( id INT PRIMARY KEY AUTO_INCREMENT, sex INT, age INT, user_id INT );

实体类:

public class User{
    private Integer id;
    private String name;
    //get/set方法略
}
public class UserInfo{
    private Integer id;
    private Integer sex;
    private Integer age;
    private User user;
    //get/set方法略
}

配置文件:

方式一:使用联接查询
<select id="selectAll" resultMap="JoinResultMap">
    select ui.*,u.name user_name from user_info ui, user u on ui.user_id=u.id
</select>
<resultMap type="package.UserInfo" id="JoinResultMap">
    <id property="id" column="id"/>
    <result property="sex" column="sex"/>
    <result property="age" column="age"/>
    <association property="user" javaType="package.User">
        <id property="id" column="user_id"/>
        <result property="name" column="user_name"/>
    </association>
</resultMap>

方式二:使用嵌套查询
<select id="selectAllByNest" resultMap="NestResultMap">
    select * from user_info
</select>
<resultMap type="pageage.UserInfo" id="NestResultMap">
    <id property="id" column="id"/>
    <result property="sex" column="sex"/>
    <result property="age" column="age"/>
    <association property="user" column="user_id" select="selectUser"/>
</resultMap>

<select id="selectUser" parameterType="int" resultType="package.User">
SELECT * FROM user WHERE id=#{id}
</select>

© 著作权归作者所有

思想永无止境
粉丝 4
博文 257
码字总数 292814
作品 0
昌平
程序员
私信 提问
MyBatis学习总结(五)——实现关联表查询

一、一对一关联 1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就...

Carl_
2015/08/12
0
0
MyBatis学习总结(五)——实现关联表查询

一、一对一关联 1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就...

Carl_
2015/08/12
0
0
Mybatis3.4.x技术内幕(二十一):参数设置、结果封装、级联查询、延迟加载原理分析

Mybatis在执行查询时,其参数设置、结果封装、级联查询、延迟加载,是最基本的功能和用法,我们有必要了解其工作原理,重点阐述级联查询和延迟加载。 1、MetaObject MetaObject用于反射创建对...

祖大俊
2016/09/16
788
0
MyBatis学习整理0

学习java的基本都会“ssh”,我也不例外,其中就包括了hibernate,当时感觉挺神奇的,去年开始接触mybatis,一对比发现,这mybatis有不少优点。 下面分享一下我在学习mybatis的时候整理的内容...

阿信sxq
2016/08/19
88
2
Java面试----2018年MyBatis常见实用面试题整理

Java面试----2018年MyBatis常见实用面试题整理 1、什么是MyBatis? 答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。 2、讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存...

优惠券活动
2018/04/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySql双主架构原理

在企业中,一般系统架构的瓶颈会出现在数据库这一部分,mysql主从架构在很大程度上解决了这部分瓶颈,但是在mysql主从同步的架构也存在很多问题;比如:1.关于数据写入部分(也就是主库)往往很难做...

xiaomin0322
13分钟前
0
0
分布式系统中一致性哈希

问题场景 近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多...

Java领航员
14分钟前
0
0
接口限流算法:漏桶算法和令牌桶算法

漏桶算法 漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃。这一点和线程池原理是很相似的。 把请求比作是水,水来了都先放进桶里,并以限定...

铁骨铮铮
21分钟前
1
0
Android 生成二维码工具类

/** * 生成条形码和二维码的工具 */public class ZXingUtils { /** * 生成二维码 要转换的地址或字符串,可以是中文 * * @param url * @param width ...

lanyu96
26分钟前
1
0
谈谈lucene的DocValues特性之SortedNumericDocValuesField

前面已经介绍过NumericDocValuesField,这里想强调一下SortedNumericDocValuesField是针对同一篇文档中一键多值的情况进行排序的,换句话说不同文档的同一字段值可以乱序。核心的写入流程与谈...

FAT_mt
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部