mybatis一对一

【深入浅出MyBatis系列三】Mapper映射文件配置

走远了吗. 提交于 2019-11-27 10:11:44
#0 系列目录# 深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】强大的动态SQL 【深入浅出MyBatis系列五】SQL执行流程分析(源码篇) 【深入浅出MyBatis系列六】插件原理 【深入浅出MyBatis系列七】分页插件 【深入浅出MyBatis系列八】SQL自动生成插件 【深入浅出MyBatis系列九】改造Cache插件 【深入浅出MyBatis系列十】与Spring集成 【深入浅出MyBatis系列十一】缓存源码分析 【深入浅出MyBatis系列十二】终结篇:MyBatis原理深入解析 在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, delete, cache, cache-ref, resultMap, sql 。 #1 insert, update, delete 的配置及使用# 相信,看到insert, update, delete, 我们就知道其作用了,顾名思义嘛,myabtis 作为持久层框架,必须要对CRUD啊。好啦,咱们就先来看看 insert, update, delete 怎么配置,

mybatis框架学习-多表查询

守給你的承諾、 提交于 2019-11-26 18:58:22
啰里巴嗦 mybatis中的多表查询 表之间的关系有几种: 一对多 多对一 一对一 多对多 举例: 用户和订单就是一对多 订单和用户就是多对一 一个用户可以下多个订单 多个订单属于同一个用户 人和身份证号就是一对一 一个人只能有一个身份证号 一个身份证号只能属于一个人 老师和学生之间就是多对多 一个学生可以被多个老师教过 一个老师可以交多个学生 特例: 如果拿出每一个订单,他都只能属于一个用户。 所以Mybatis就把多对一看成了一对一。 mybatis中的多表查询: 示例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) 步骤: 1、建立两张表:用户表,账户表 让用户表和账户表之间具备一对多的关系: 需要使用外键在账户表中添加 2、建立两个实体类:用户实体类和账户实体类 让用户和账户的实体类能体现出来一对多的关系 3、建立两个配置文件 用户的配置文件 账户的配置文件 4、实现配置: 当我们查询用户时,可以同时得到用户下所包含的账户信息 当我们查询账户时,可以同时得到账户的所属用户信息 示例:用户和角色 一个用户可以有多个角色 一个角色可以赋予多个用户 步骤: 1、建立两张表:用户表,角色表 让用户表和角色表具有多对多的关系。 需要使用中间表,中间表中包含各自的主键,在中间表中是外键。 2、建立两个实体类:用户实体类和角色实体类

MyBatis映射器总结

懵懂的女人 提交于 2019-11-26 18:00:52
Mybatis映射器xml配置包含如下标签: select 查询语句,自定义参数返回结果集 insert 插入语句 update 更新语句 delete 删除语句 parameterMap 定义参数映射关系,不建议使用 sql 定义一段SQL,可以再其他部分引用 resultMap 结果集,提供映射规则 cache 给定命名空间的缓存配置 cache-ref 其他命名空间缓存配置的引用 1.select 1.1 select标签包含如下属性: 属性 说明 备注 id 它和Mybatis的命名空间组合起来是唯一的,提供MyBatis调用 若果命名空间和id结合起来不唯一,MyBatis会抛异常 parameterType 参数类型,可以给出类的全命名,也可以给出别名,但是别名必须是MyBatis内部定义或者自定义的 可以选择JavaBean、map等简单的参数传递给SQL parameterMap 新版废弃的,不建议使用 -- resultType 定义类的全路径,在允许自动匹配的情况下,结果集将通过 JavaBean 的规范映射;或定义为 int、double、float、map 等参数;也可以使用别名,但是要符合别名规范,且不能和 resultMap时使用 常用的参数之 ,比如统计总条数时可以把它的值设置为 int resultMap 它是映射集的引用,将执行强大的映射功能

Mybatis学习总结(三)---resultType、resultMap和延迟加载

别说谁变了你拦得住时间么 提交于 2019-11-26 00:40:42
实现一对一查询 resultType: 使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,创建一个pojo类(VO),继承查询字段较多的po类,再增加需要的属性,即可完成映射。 如果没有对查询结果有特殊要求建议使用resultType 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo) resultMap: 需要单独定义resultMap,实现有点麻烦,如果有对查询结果有特殊的要求,使用resultMap可以完成将关联查询映射pojo属性中。 resultMap可以实现延迟加载,resultType无法实现延迟加载。 使用association和collection完成一对一和一对多高级映射(对结果有特殊映射要求) association: 作用: 将关联查询信息映射到一个pojo对象中。 场合: 为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中:比如查询订单及关联用户信息。 使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要

Mybatis中的resultType和resultMap

混江龙づ霸主 提交于 2019-11-26 00:37:52
一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。 ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。 ②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。 二、ResultType Blog.java public class Blog { private int id; private String title; private String content; private String owner; private List<Comment>