

Spring Boot(三) Spring boot + Hibernate 多租户的使用
多租户 多租户(Multi Tenancy/Tenant) 是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务。 概念是抽象的,但是理解起来并不困难,简单来说就是分组,举个例子:我们管理学校学生的时候,可以按照不同的范围来进行分组,比如我们可以按照学生个人为单位进行分组,也可以按照班级为单位进行分组,然后班级下面有很多的学生,也可以按照年级为单位进行分组,以学校为单位……这样的每一个分组的单位,都可以是我们概念里面说的一个租户。但是这样不就和我们以前说的按照面向对象来分类是一样的吗?其实是差不多的,但是有着一些细节上的差别,首先多租户架构的概念是针对数据存储的,我们是一个数据服务提供商,假设我们给所有的学校提供服务,对于我们来说,分组是按照学校为单位的,而且学校与学校之间互相没..
更多

Hibernate(3.2)_Hibernate多表的操作
简介 我们都已经知道了Hibernate对于单表单记录的基本操作了,但是我们知道,在这个世界上,事物与事物之间是有联系的,而且关系是错综复杂的,不仅有一对一,一对多,多对一还有多对多,对于数据库中的数据也是如此,在通常的情况下,对数据库中的带有各种不同关系的数据进行操作是常有的事情,于是我们开始尝试使用Hibernate来进行多个表之间有关系的数据之间的操作。 关系 我们知道关系有很多种,本文讨论的是其中一对多和多对一的关系,其实这两种关系是相同的,只不过是看对哪一方的对象来说,举一个例子,公司里面有很多部门,也有很多员工,那么部门和员工是怎么组织起来的呢?一个部门领导着多个员工,多个员工同属于一个部门 这就是一个经典的一对多关系的例子 数据库准备 数据库的建立不再赘述,简单说一下表的准备,这里..
更多

Hibernate(3.1)_Hibernate的get和load
我们都知道在要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()方法,另一种就是通过session.load()方法,然后其实这两种方法在获得一个实体对象时是有区别的,在查询性能上两者是不同的。 load方式 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load()方法来加载一个对象时,此时并不会发出sql语句,当前得到的这个对象其实是一个代理对象,这个代理对象只保存了实体对象的id值,只有当我们要使用这个对象,得到其它属性时,这个时候才会发出sql语句,从数据库中去查询我们的对象。 Student student = (Student) session.load(Student.class, 2..
更多

Hibernate(3.0)_Hibernate单表的增删改查
在项目中搭建好了Hibernate框架之后,就可以直接用Hibernate进行数据库的一些操作了 搭建数据库 首先先在数据库中搭建一个简单的测试数据库 新建一个新的数据库Hibernate_Project,字符集选UTF-8,排序默认 然后新建一张表 并保存为Student 然后在表中填入测试用的数据 新建好数据库之后在hibernate.cfg.xml中修改相应的数据库URL <property name="connection.url"> jdbc:mysql://127.0.0.1:3306/Hibernate_Project </property> 编写代码 搭建好数据库之后就可以回到项目中开始写相应的代码 首先先写一个..
更多