因为该案例比较典型,所以记录一下,恐后期有所疑问,以便用时便于会议. 案例典型在 关联关系典型 主表一张业务模板表 TABLE_NAME  COLUMN_NAME COMMENTS YMIT_BIZ_TMP    PK_ID   自增主键 YMIT_BIZ_TMP    BIZ_TMP_NM  业务模板名称 YMIT_BIZ_TMP    TRD_INF_ID  交易接口ID,与接口用例树关联 YMIT_BIZ_TMP    TRD_INF_NM  交易接口名称 YMIT_BIZ_TMP    …
问题描述:在使用mybatis进行多表联合查询时,如果两张表中的字段名称形同,会出现无法正常映射的问题. 问题解决办法:在查询时,给重复的字段 起别名,然后在resultMap中使用别名进行映射. 给出一个小demo:如下是一个**mapper.xml映射文件的一个查询片段,用到了四表联合查询,其中订单id,项目id,回报id,是需要查询的数据,并且字段名都是id,显然是重复字段,此时就需要为这些重复的id起别名了,请看下面的红色部分代码: <resultMap id="BaseResul…
本文链接地址:mybatis关联查询基础----高级映射(一对一,一对多,多对多) 前言: 今日在工作中遇到了一个一对多分页查询的问题,主表一条记录对应关联表四条记录,关联分页查询后每页只显示三条记录,sql查询主表一条记录的时候,加上关联表后主表每一条记录都和关联表相对应,也就是说主表一条记录和关联表四条对应实际查出的是4条,怎么实现主表一条记录和关联表多条数据关联后查出后是一条信息呢?(下面一对多详解),所以想将关于mybatis多表查询的问题整理记录下来,希望大家多多补充指正. 0.首先是…
1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collection:一对多关联 ◊ discriminator:鉴别器,可以根据实际选择采用哪个类作为实例,允许根据特定的条件去关联不同的结果集. 2. 一对一关联查询 表结构设计:user.user_profile 2.1 方式一 <?xml version="1.0" encoding=&qu…
实体关系图,一个国家对应多个城市 一对多关联查询可用三种方式实现: 单步查询,利用collection标签为级联属性赋值: 分步查询: 利用association标签进行分步查询: 利用collection标签进行分步查询 单步查询 利用collection标签实现一对多单步关联查询: 指定进行关联查询的Java Bean字段,即collection标签的 property 属性: 指定集合中的Java Bean类型,即collection标签的 ofType属性: 实体类 public cla…
场景:最近接到一个项目是查询管理人集合  同时每一个管理人还存在多个出资人   要查询一个管理人列表  每个管理人又包含了出资人列表 采用mybatis关联查询实现返回数据. 实现方式: 1 .在实体中定义包含出资人集合  并创建get  set 方法 public class FundManager extends BaseEntity implements Serializable { /** 默认字段,禁止更改 **/ @Fieldmeta(name = "主键", logfla…
MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Classes { 9     //定义实体类的属性,与class表中的字段对应 10     private int id;            //id===>c_id 11     private String name;    //name===>c_name 13     /** 14   …
Mybatis关联查询之多对多 多对多 一.entity实体类 public class Student { private Integer stuid; private String stuname; private String stuaddress; //植入一个Teacher集合,代表一名学员可以被多名教员教课 private List<Teacher> teachers; public Integer getStuid() { return stuid; } public void…
MyBatis关联查询和懒加载错误 今天在写项目时遇到了个BUG.先说一下背景,前端请求更新生产订单状态,后端从前端接收到生产订单ID进行查询,然后就有问题了. 先看控制台报错: org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected. 很明显,预期查出一条记录的结果查出了多条记录.因为在实现 service 层代…
Mybatis关联查询和数据库不一致问题分析与解决 本文的前提是,确定sql语句没有问题,确定在数据库中使用sql和项目中结果不一致. 在使用SpringMVC+Mybatis做多表关联时候,发现也不报错,也没有出现任何问题,但是就是和数据库查出的数据不一致,永远返回的只有一条数据,究其原因,在做多表关联查询时候,应该将关联两张表的ID主键在数据库中写出,这样在用BaseResultMap做关联,就可以找到所有的属性.其中所关联的表使用的是<association></associati…
上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, 本篇继续讲剩下的配置节点之一:typeAliases. typeAliases节点主要用来设置别名,其实这是挺好用的一个功能, 通过配置别名,我们不用再指定完整的包名,并且还能取别名. 例如: 我们在使用 com.demo.entity. UserEntity 的时候,我们可以直接配置一个别名user, 这样…
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006…
平时在开发过程中dao.bean和XML文件都是自动生成的,很少写XML的配置关系,今天记录一下mybatis的关联查询中的多对一和一对多的情况. 首先是有两张表(学生表Student和老师Teacher表),为了更易懂,这里只设置了最简单的几个必要字段.表结构如下图: Student表: ​ Teacher表: ​ 创建实体bean: Teacher.java: import java.util.List; /** * TODO * @version 创建时间:2017年12月21日 上午9:…
Mybatis的定义 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. Mybaits如何使用,这里有一篇关于Mybatis的介绍,没有使用过的童鞋可以参考,今天主要说的是ResultMap…
SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用 <mapper namespace="com.mybaits.bean.User"> <!-- 将结果集转化成对象 --> <resultMap type="" id=""></resultMap> <…
1.MyBatis-config.xml详解 一个完整的配置文件如下所示 <configuration> <!-- <properties resource="jdbc.properties"/> --> <properties> <property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/> <prope…
一.前言    数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二. insert元素 属性详解   其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的…
上一篇文章介绍了基于Mybatis对数据库的增.删.改.查.这一篇介绍下关联查询(join query). 三张表:user article blog 表的存储sql文件: /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50620 Source Host : localhost:3306 Source Database : mybatis Target Server Type :…
先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出现了如下错误:Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer' 因为出现了这个问题,…
注:这篇文章的代码有部分删减,不能直接使用,不过关键代码都存在  应用场景: 想用mybatis做关联查询,并且把查询出的数据自动组装成对象可以使用关联查询. 1.一对一实现 例如:一部小说,属于一个分类,查询小说的时候想同时查询出所属分类. 1)实体定义: public class Book { private static final long serialVersionUID = 1L; /** *小说ID */ private Integer bookId; /** *作者 */ pri…
一.前言 数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二. insert元素 属性详解 其属性如下: parameterType:入参的全限定类名或类型别名 keyColumn:设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty :默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中 u…
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6923464.html 前面有将到:Spring+SpringMVC+MyBatis深入学习及搭建(五)--动态sql 1.商品订单数据模型 1.1数据模型分析思路 (1)每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程. (2)每张表重要的字段设置 非空字段.外键字段 (3)数据库级别表与表之间的关系 外键关系 (4)表与表之间的业务关系 在分析表与表之间的业务关…
简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.mybatis优点之一: 3.1 使用mybatis时,不需要编写实现类,只需要写需要执行的sql命令. 环境搭建: 1.导入jar (之前把mysql的驱动包放入tomcat中了,所有在这里没有导入mysql驱动包)   2.在src下新建全局配置文件(编写JDBC四个变量) 2.1 在src目录下新建…
MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL 映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量.MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式. SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 配置给定命名空间的缓存. cache-ref – 从其他命名空间引用缓存配置. resultMap – 最复杂,也是最有力量的元…
一对多的管理查询结果映射   1.进行一对多的查询时候,要在主查询表对应的Po中加入关联查询表对应PO的类的list集合作为属性. public class Orders { private Integer id; private Integer userId; private String number; private Date createtime; private String note; //订单明细 private List<Orderdetail> orderdetails; p…
MyBatis的关联查询之自关联 自关联 一.entity实体类 public class City { private Integer cid; private String cname; private Integer pid; //自关联集合 代表的是当前City对象的自己集合 public List<City> childCitys; public Integer getCid() { return cid; } public void setCid(Integer cid) { th…
MyBatis的关联查询之一对多,多对一 在关系型数据库中,我们经常要处理一对多,多对一和多对多的关系. 一对多,多对一 一.entity 实体类 public class SmbmsRole { private long rid; private String roleCode; private String roleName; //泛型集合 private List<User> users; public List<User> getUsers() { return users…
原文地址: http://www.cnblogs.com/xiaolang8762400/p/7399892.html   mybatis 提供了高级的关联查询功能,可以很方便地将数据库获取的结果集映射到定义的Java Bean 中.下面通过一个实例,来展示一下Mybatis对于常见的一对多和多对一关系复杂映射是怎样处理的. 设计一个简单的博客系统,一个用户可以开多个博客,在博客中可以发表文章,允许发表评论,可以为文章加标签.博客系统主要有以下几张表构成: Author表:作者信息表,记录作者的…
两个表: Customer 顾客表 create table if not exists customer( customer_id int primary key auto_increment, first_name varchar(20), last_name varchar(20), company varchar(20), address varchar(20), city varchar(20), state int , country varchar(20), postal_code…
有2个实体:用户.订单,一个用户可以拥有多个订单,同时这多个订单属于一个用户,即一对多. user_tb: order_tb: 在“多”的一方(order)添加“一”的一方(user)的主键(user_id)作为外键. 使用嵌套结果 (1)给2个实体都编写pojo类,需要在“一”的一方写个List来关联“多”的一方 package com.chy.pojo; public class Order { private Integer no; private Integer userId; priv…