使用resultType注意:sql查询的列名要和resultType指定pojo的属性名相同,指定相同 属性方可映射成功,如果sql查询的列名要和resultType指定pojo的属性名全部不相同,list...如果sql查询列名和最终要映射的pojo的属性名不一致,使用resultMap将列名和pojo的属性名做一个对应关系 (列名和属性名映射配置) 使用resultMap <resultMap id...这里写图片描述 ---- resultType和resultMap用法总结 resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中。...场合: 常见一些明细记录的展示,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。...---- association: 作用: 将关联查询信息映射到一个pojo类中。 场合: 为了方便获取关联信息可以使用association将关联订单映射为pojo,比如:查询订单及关联用户信息。
如果查询的列名和映射的pojo属性名全部不一致,则不会创建pojo对象; 如果查询的列名和映射的pojo属性名有一个一致,就会创建pojo对象。 输出POJO列表 mapper ?...小结 resultType:使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,需要增加列名对应的属性,即可完成映射。...将订单明细映射到orders中的orderdetails中,需要自己处理,使用双重循环遍历,去掉重复记录,将订单明细放在orderdetails中。...6.3 多对多 需求:查询用户信息及用户购买的商品信息,要求将关联信息映射到主pojo的pojo属性中 ?...6.4 总结 一对一:模型里面写模型(association) 一对多:模型里面写集合(collection) resultType:将查询结果按照sql列名pojo属性名一致性映射到pojo中。
另外如果resultMap 多层嵌套中有多个id,并且名字相同的话,查询的时候尽量给个别名会更好一些。 3.2 result 就是正常映射到pojo类的一个属性。...3.3 resultType: 作用:将查询结果按照sql列名pojo属性名一致性映射到pojo中。...场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。...使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。...场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单
使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。...如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。...-- 订单明细信息 一个订单关联查询出了多条明细,要使用collection进行映射 collection:对关联查询到多条记录映射到集合对象中 property...:将关联查询到多条记录映射到com.mybatis.po.Orders哪个属性 ofType:指定映射到list集合属性中pojo的类型 --> 类采用驼峰命名。
WHERE orders.user_id = user.id 1.2.2.创建POJO 分析:将上面的sql查询的字段映射到pojo中,pojo必须包含所查询字段列名。...原始的Orders类不能映射全部字段,那么我们需要创建新的pojo。...使用的sql语句相同 2.2.使用resultMap映射思路 思路:将查询出来的订单信息映射到订单属性中,在订单中定义一个User对象的属性,然后通过resultMap关系映射,把User的响应属性映射到用户属性上面...中没有包含查询出来的列名,需要在pojo中增加对应属性。...-- id:查询列表中的唯一标识,订单信息中的唯一标识,如果有多个Id,那么就定义多个ID column:订单信息唯一标识列名(也就是数据库主键列名) property:订单信息唯一标识映射到pojo的字段名
表名和po类名一致,表的属性和po的属性一致。...resultType实现 resultType映射规则:sql查询出几条记录,只要保证sql列名和resulttype指定的pojo类型的属性一致,可以映射成功,sql查询出几条记录最终映射生成的List...– 自定义pojo 由于与表对应的po类的属性不能够全部包括下边列名,所以自定义pojo,属性名和下边的列名保持一致 mapper.xml mapper.java resultMap...reusltMap,需求比如:将一个列表数据映射到pojo的list属性中采用resultmap。...如果仅仅是将查询列表简单映射为List方式,列表中每个pojo对应一条记录,采用resultType即可。
一对一查询 ---- resultType resultType:使用resultType实现非常简单,如果POJO中没有包括查询的列名,可以新建扩展类继承父类,并在子类中添加列名对应的属性,即可完成映射...:将关联查询到多条记录映射到cn.itcast.mybatis.po.Orders哪个属性 ofType:指定映射到list集合属性中pojo的类型 -->...对关联查询的多条记录映射到一个list集合属性中。...多对多查询 ---- 映射思路 将用户信息映射到user中 在user类中添加订单列表属性List orderslist,将用户创建的订单映射到orderslist 在Orders中添加订单明细列表属性...使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。
Mybatis高级查询(一) 在开始高级查询之前我们先来认识几个新的标签 resultMap与resultType resultType:将查询结果按照sql列名pojo属性名一致性映射到pojo中 适用场合...:较为简单的映射关系 但是如果pojo中没有包括查询出来的列名,就需要增加列名对应的属性才可以完成映射,如果没有查询结果的特殊要求建议使用resultType. 1)基本类型:resultType=基本类型...2)List类型:resultType=list中元素的基本类型 3)Map类型:单条记录:resultType=map 多条记录:resultType=Map中的value类型 ***resultMap...:将关联信息映射到哟个pojo对象中 适用场合:一个订单表中只有一个用户对象属性,可以使用该标签实现查询订单表的时候关联查询出订单的用户信息; collection: 作用:将关联查询信息映射到一个list...="映射到pojo对象的一个属性"/> <!
一、SQL封装和性能 在使用Hibernate的时候,我们查询的是POJO实体类,而不再是数据库的表,例如hql语句 select count(*) from User,里面的User是一个Java类,...,查询POJO对象,查询条件是对象属性,不再需要有任何表、字段等关系的概念,这样java程序员就更容易做持久层的操作。...MyBatis则是另外一种类型的持久化框架,它没有封装SQL也没有创建一种新的面相对象的查询语言,而是直接使用SQL作为查询语言,只是把结果填入POJO对象而已。...和Ebean,需要了解复杂的JPA概念和各种奇异的限制,JOOQ编写的就是普通的SQL语句,只是把查询结果填充到实体类中(严格说JOOQ没有实体类,只是自动生成的Record对象),JOOQ甚至不一定要把结果转换为实体类...相对于JOOQ,MyBatis在多数情况下没有任何优势。 Ebean同时具有很多不同框架的优点,但它是基于JPA的,难免有JPA的各种限制,这是致命的缺点。
1.1.2.2创建pojo 将上边sql查询的结果集映射到pojo中,pojo中必须包含所有查询列名。...创建一个pojo继承包括查询字段较多的po类。...property:将关联查询到多条记录映射到com.demo.po.Orders哪个属性 ofType:指定映射到lsit集合属性中pojo中的类型 --...1.4 resultMap 总结: resultType: 作用: 将查询按照结果sql列名pojo属性名一致性映射到pojo中。...场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联信息全部展示在页面时, 此时,可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历
可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 4) MyBatis 是一个 半自动的ORM...和 JPA 操作简便,开发效率高 程序中的长难复杂 SQL 需要绕过框架 内部自动生产的 SQL,不容易做特殊优化 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。...Java持久层框架: MyBatis Hibernate(实现了JPA规范) jOOQ Guzz Spring Data(实现了JPA规范) ActiveJDBC ...... 5....ORM: 对象关系映射 O(Object):Java虚拟机中的Java对象 R(Relational):关系型数据库 M(Mapping):将Java虚拟机中的Java对象映射到数据库表中一行记录...,或是将数据库表中一行记录映射成Java虚拟机中的一个Java对象。
它的属性与元素的属性大部分相同,在本节讲解它的几个特有属性。...在元素中,通常使用以下属性: property:指定映射到实体类的对象属性。 column:指定表中对应的字段(即查询返回的列名)。...它返回的类型为 com.po.Idcard 这个POJO类,映射到 com.po.Person 这个POJO类的 card 属性(读者可以看看Person类的定义)。...第三种方法:写死SQL语句,数据传给一个自定义的POJO类,其中一个POJO类就是根据SQL结果特制的类。这种方法简洁明了,但是写死了SQL不利于后期程序改动,耦合性太高。 POJO类直接对应的关系其实就是表之间的关联关系: ?
3)测试类新增方法 (4)测试结果 三、Mybatis映射文件 — 特殊字符处理 (1)持久层新增查询比输入ID大的集合 (2)映射文件新增标签 (3)测试类新增测试方法 (4)运行结果 ---- 一...,但是我们的集合对象却是为空, 原来是因为 MyBatis可以将数据库结果集封装到对象中,是因为结果集的列名和对象属性名相同 当POJO属性名和数据库列名不一致时,MyBatis无法自动完成映射关系。...此时有两种解决方案: ① Sql语句的查询字段起与POJO属性相同的别名。...如:Sql语句的查询字段起与POJO属性相同的别名,该Sql片段就可以重用。...我们可以使用符号的实体来表示: 符号实体>&&''"" (1)持久层新增查询比输入ID大的集合 // 查询比输入Id要大的记录 List<Teacher
一、Mybatis映射文件 — resultMap标签(1)新建一个Teacher类,如下package com.mybatisstudy.pojo;public class Teacher {...,但是我们的集合对象却是为空, 原来是因为MyBatis可以将数据库结果集封装到对象中,是因为结果集的列名和对象属性名相同当POJO属性名和数据库列名不一致时,MyBatis无法自动完成映射关系。 ...此时有两种解决方案: ① Sql语句的查询字段起与POJO属性相同的别名。...如:Sql语句的查询字段起与POJO属性相同的别名,该Sql片段就可以重用。...我们可以使用符号的实体来表示: 符号实体>&&''"" (1)持久层新增查询比输入ID大的集合// 查询比输入Id要大的记录 List<Teacher
[logo.jpg] 【SpringBoot DB 系列】Jooq 之新增记录使用姿势 接下来我们开始进入 jooq 的增删改查的使用姿势系列,本篇将主要介绍如何利用 jooq 来实现添加数据 记录 接下来我们进入正式的数据插入的使用姿势介绍,一般来说新增数据会区分单个和批量两种方式,下面我们分别进行介绍 1....Record 实体类新增方式 在 jooq 中,借助自动生成的 Record 类来实现新增是最简单的 case,如下 private static final PoetTB table = PoetTB.POET...,重点在上面的实现中,并没有利用自动生成的代码,如 table: DSL.table(表名) field: DSL.field(列名,类型) 通过上面的的 case,我们可以知道在不自动生成 DB 对应的代码前提下...链式批量保存 同样是类 sql 的链式插入方式,需要注意一下与前面的单条记录的链式插入的区别,下面这种写法和 sql 的批量插入的写法及其相似 /** * 类sql写法,批量添加 * * @param
2.1 resultType 从select语句中返回的期望类型的类的完全限定名或别名。注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。...2.2 resultMap 从这条语句中返回的期望类型的类的完全限定名或别名。注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。...重要的是不同点和对应的使用场景。 2.4 二者分别的使用场景 对于查询结构需要返回的简单pojo,结果都可以映射到一致的hashMap上,换句话来说就是数据库列名可以精确匹配到pojo属性的。...二者定位是: resultType用来处理非常简单的结果集,就是列名能够与pojo属性匹配的的结果集。如果你只需要查询一个班级的简单情况,那么用这个再合适不过了。 ?...总结 本文主要通过简单分析resultType与resultMap的相同点与不同点来阐明它们各自的使用场景。更多详尽的使用方法可以去Mybatis的官方文档查看。
领取专属 10元无门槛券
手把手带您无忧上云