创建Role表和user_role表 DROP TABLE IF EXISTS `role`; CREATE TABLE `role` ( `ID` int(11) NOT NULL COMMENT '编号', `ROLE_NAME` varchar(30) default NULL COMMENT '角色名称', `ROLE_DESC` varchar(60) default NULL COMMENT '角色描述', PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEF…
4.mybatis中的多表查询     表之间的关系有几种:         一对多         多对一         一对一         多对多     举例:         用户和订单就是一对多         订单和用户就是多对一             一个用户可以下多个订单             多个订单属于同一个用户 人和身份证号就是一对一             一个人只能有一个身份证号             一个身份证号只能属于一个人 老师和学生之间就是多对多  …
一个角色对应多个用户 生成getter和setter 查看两个表的数据 中间表定义了谁有角色,谁没有角色 根据中间表的关系,最终查询出来的列表的数据样子.这需要两个左外链接才能实现功能. 第一个左外链接就需要加上 条件判断. 再去和user表左外链接.这样执行就是我们想要的效果. 但是这里面我们不需要中间表的信息.那么查询的就是u.*和r.* 但是又会出现id的问题 这就需要起别名 把写好的语句复制过来. 比较好的方式还是在下面行前面空出来空格 用户的id没改,但是觉得id在sql语句 加了别名…
sql语句以user作为主表 用户的全部信息,以为用户下的角色的.并不是所有的用户都有角色,有角色的就带角色.没角色的就为null 首先修改实体类 定义List<Role> 生成getter和setter…
mybatis中的多表查询:         示例:用户和账户             一个用户可以有多个账户             一个账户只能属于一个用户(多个账户也可以属于同一个用户)         步骤:             1.建立两张表:用户表,账户表                 让用户表和账户表之间具备一对多的关系:需要使用外键在账户表中添加             2.建立两个实体类:用户实体类和账户实体类                 让用户和账户的实体类能体现出…
示例:用户和角色             一个用户可以有多个角色             一个角色可以赋予多个用户         步骤:             1.建立两张表:用户表,角色表                 让用户表和角色表具有多对多的关系.需要使用中间表,中间表中包含各自的主键,在中间表中是外键.             2.建立两个实体类:用户实体类和角色实体类                 让用户和角色的实体类能体现出来多对多的关系                 各…
先把多表查询的sql语句写出来 想要显示的字段 创建一个AccountUser类 继承Account.这样它就会从父类上继承一些信息 这里只需要定义username和address就可以了 .然后生成getter和setter 还有toString方法 在toString的前面先调用父类的toString方法,也就是super.toString()方法.这样就能输出所有的字段的信息 那么这里返回的类型的就是AccountUser这个实体类 通过这种写一个Account的子类的的方式用的是不多的.…
1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型MapperScannerConfigurer 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户 1.1.2一对一查询的语句 对应的sql语句:select * from orders o,user u where o.uid=u.id; 查询的结果如下: 1.1.3 创建Order和User实体 public class Order {…
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > &…
SpringBoot是用来简化SpringMvc开发的项目,这里自然要整合mybatis等持久化框架! 先看看项目目录: 一.在pom.xml中配置依赖jar包:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.o…
定义List<Account> accounts,生成getter和setter 复制AccountTest类改名UserTest类 修改测试类 还没封装所以Account的list都是null  映射文件修改 上面是user的定义 ofType是集合中元素的属性. 结合中的元素都是account,所以这里写上account.如果了起了别名是可以这么写的,但是如果没起别名,就要写完整的全限定类名 account的id字段要起别名,所以这里叫做aid 这里使用的是左外链接 这里有重复的记录,一对…
定义user的实体.然后生成getter和setter 定义一个可以封装Account和User的Map type这里虽然是account类型 这一段只能保证account的数据完成.并不能保证user对象 association标签.column表示外键的字段. 运行findAll的方法 user对象出现null的原因: javaType表示封装那个属性信息里面.正常应该是完成的包名 因为我们用了别名所以这里可以直接简单用user表示:com.itheima.domain.User 再次执行测…
id:在命名空间中唯一的标识符,可以被用来引用这条语句. parameterType:设置传入这条语句的参数的数据类型,如int,String...... resultType:设置从这条语句中返回数据的类型. 注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身.可以使用 resultType 或 resultMap,但不能同时使用. select 1)查询某个表的所有记录 <select id="queryall" resultType="com.tes…
hibernate的hql查询直接返回java对象时出现问题3 向大家请教一个问题,现在有三张表,表之间没有关联,我需要将三张表里面的所有东西查询出来存储到一个新的对象中,该如何实现,使用hibernate. 在hibernate里面有这样一个使用介绍 select new Family(mother, mate, offspr) from DomesticCat as mother     join mother.mate as mate     left join mother.kitten…
注解改造案例 复制之前的xml配置的pom.xml里面的依赖. 复制com文件 bean.xml配置文件也拷贝过来 测试类也复制过来 开始基于注解的IOC配置 右键项目,选择maven.选择更新 更新后 ,所依赖的jar包就全都进来了. 注入的配置文件的开头 Service的bean配置都删掉 service的注解 dao注解 使用注解后.set放就不是必须的,可以删除. queryRunner同样可以用@Autowired 使用了注解开发,就需要告知spring.在创建容器时要扫描的包 测试…
MyBatis多表查询, 从表中映射主表,使用 association 标签,通过设置 javaType 属性关联实体类: 主表映射从表,使用 collection 标签,通过 ofType 属性关联实体类.    示例: 1.创建数据库 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50620 Source Host : 127.0.0.1:3306 Source Databas…
一:引言 在学习完前面的mybatis基本语法后,大家都有个认知,这个Mybatis太强大了,比之前使用JDBC写方便多了,但是你们当初在使用原生JDBC写SQL查询的时候有没有遇到过多表查询呢?肯定大部分人都遇到过,我刚学JDBC的时候遇到多表查询我懵了,不知道如何应对,所以我就默默的执行2条SQL语句,分别查询不同的表,然后对这2个查询出来的数据通过java代码控制,使封装到对象中,这个简直要崩溃的感觉,但是学完Mybatis多表查询后,你会爱上Mybatis的 准备工作:我已经准备好了一对…
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); border-top-left-radius: 7px; border-top-right-radius: 7px; color: rgba(255, 255, 255, 1); height: 1.8em; line-height: 1.8em; padding: 5px } 若采用mybati…
搭建项目 一:lib(关于框架的jar包和数据库驱动的jar包) 1,第一步:先把mybatis的核心类库放进lib里…
在实际的项目中其实建立数据库和设计数据库的时候特别重要,而等数据库设计完成之后,根据数据库创建实体类的工作就特别麻烦和繁琐了,不仅很麻烦,而且很浪费时间,不做又不行,这次就找到了一个简单的方法可以让myBatis帮你完成这件事情. 首先你需要一个Generator的myeclipes的插件,这个插件能在网上找到,安装方法也很简单就多说了. 下载了这个插件之后,新建一个xml,这个配置文件,就是对你所需要的实体类dao和xml进行合理的配置,看看你需要那些,不需要那些. 这里的配置我参考了网上给出…
在使用SSH框架开发过程,使用hibernate框架提供的工具类实现与数据库数据交互,在执行cmd操作时,如果出现以下异常: org.hibernate.hql.ast.QuerySyntaxException: xxx is not mapped [from xxx] 或者 nested exception is org.hibernate.hql.internal.ast.QuerySyntaxException 详细异常信息   ::, ERROR DefaultDispatcherErr…
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发 MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下: properties(属性) setting(全局配置参数) typeAliases(类名别名) typeHandlers(类名处理器) objectFactory(对…
介绍 在之前的 Entity Framework 快速上手介绍 之中,两个实体之间只是简单的一对一关系,而在实际的应用场景中,还会出现多对多关系,同时还有可能会出现多对多关系还附带有其他字段的情况. 下面以几个例子,对表间多对多关系的类表示加以更加详细地描述.虽然两个场景举例是使用的 C# 及 Entity Framework(Model First) 框架自动生成数据库.实体类.但这种设计方法,并不只是在使用 ORM 框架时需要,事实上,它是 POCO 及简单 Java 类(POJO)的设计原…
1.实现功能 我们已经对注解有了基本的认识,知道了如何自定义注解,如何使用和最基本的处理注解. 本篇主要介绍,如何使用运行时级别的注解,配合反射来自动生成建表的sql语句.如下例: 我们有实体类Student,并添加相应的注解 @Table.@Column,最终可以获取到创建对应表的sql语句 @Table(name = "t_student") public class Student { @Column(name = "c_name") public Strin…
ORM的单表操作 MTV框架包含一个重要的部分就是ORM----对象关系映射(Object Relational Mapping),它实现了数据模型与数据库的解耦,即数据模型的设计.利用它我们不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动. 这里需要注意的是,ORM只能对表进行操作,也可以对表下面的记录进行操作,但是ORM不能对数据库进行操作,不能创建与删除数据库.也就是说,数据库必须提前创建好,接着ORM在数…
多表之间的关系和操作多表的操作步骤 表关系 一对多 一对多      >>  一:主表     多:从表 多对多     >>  中间表中最少应该由两个字段组成,这两个字段作为外键指向两张表的主键,又组成了联合主键 分析步骤 明确表关系 确定表关系( 描述: 外键  |  中间表 ) 编写实体类,在实体类中描述表关系(包含关系) 配置映射关系 完成多表操作 一对多操作 案例:客户和联系人(一对多关系) >> 客户:一家公司     联系人:这家公司的员工 一个客户可以具…
我们在实际开发中,会遇到实体类与数据库类不匹配的情况,在开发中就会产生各种各样的错误,那么我们应该怎么去解决这一类的错误呢?很简单,下面我们介绍两种解决方法: 首先我们看一下数据库和实体类不匹配的情况: 解决办法1 当我们查询的时候我们可以在映射文件mapper.xml中采取取别名的方式: <select id="findAll" resultMap="cn.com.scitc.domian.User" > select id as userId,use…
多对多的处理方式是,有一张中间表,中间表保存两个多方之间的关系.首先来看实际应用场景:在之前开发的系统中,应用了基于角色的控制访问,也就是RBAC模型,一个用户可能存在多种角色,一种角色也可能有多个用户,所以用户和角色之间是一个多对多的关系. 案例一:  使用注解方式实现多对多关系 RoleBean.java package bean; import java.io.Serializable; import java.util.HashSet; import java.util.Set; imp…
1,配置数据库,这里以oracle数据库为例.点击右侧Database图标:…
一.画出流程图 二.设计核心类 二.V1.0 的实现 创建一个全新的 maven 工程,命名为 mebatis,引入 mysql 的依赖. <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> 1.SqlSession…