Hibernate
qq_1144521901
这个作者很懒,什么都没留下…
展开
-
Hibernate-----核心配置文件、映射文件
1.核心配置文件两种方式配置:下面分别是上面3个可选配置的具体应用:1.1 控制台打印一般在写程序的时候多数会用到主要为了测试sql语句是否正常生成。为了显示sql更清楚,可以使用格式化显示。1.2 整合C3P0连接池不在使用默认的hibernate的连接池,而是自己进行设置。1.3 自动建表该属性有4个参数。一般用于测试;create基本不会被使用;所以一般常用的就是update。如果你对jav...原创 2018-04-22 15:07:29 · 1002 阅读 · 0 评论 -
Spring对Hibernate事务管理
Spring对Hibernate事务管理一、为什么需要spring对事物进行管理?在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的。在Hibernate中 我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事务自 动提交是false,他是需要我们...转载 2018-06-13 16:40:09 · 545 阅读 · 0 评论 -
如何创建一个hibernate和struts整合的程序框架(包和配置文件)
很多人在编写java的时候使用maven自动添加架包,这种自动化的方式很方便,但是同时我们也应该知道如何添加架包。目录找到两个框架的核心架包在myeclipse中创建所有的库把库导入到我们的项目中配置hibernate.cfg.xml配置struts2.xml1.找到核心架包首先是hibernate框架下载后解压缩为如下形式找到其中的required如图为核心包struts架包首先下载解压后打开找...原创 2018-04-29 20:11:58 · 259 阅读 · 0 评论 -
hibernate如何实现表的单向1:n、双向多对一(代码)
在数据库中如果对表和表的关系的描述主要是一对一,多对一和多对多。但是在hibernate编写的时候多对一是有方向的。虽然都是在数据表中增加一个外键列,但是添加的方式有两种。产生的效果也是不同的。为什么呢?因为如果你在一方代码如下:创建两个实体类: Student + Grade他们数据库的定义是:下面代码为双向多对一。双向多对一就是把单项的一对多和多对一都写上。使得数据可以双向访问。如果要一对多就...原创 2018-04-27 01:06:17 · 321 阅读 · 0 评论 -
Hibernate ------ flush和commit的区别
目录:1. flush()是什么?怎么工作的?2.commit()是什么?怎么工作的?3.二者的区别是什么?4.主键的生成策略的不同会影响save函数执行sql语句的时间和缓存的清理吗?flush和commit的区别 1、flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务; commit()方法会先调用flush()方法,然后提交事务. 提交事务意味着对数...原创 2018-04-26 23:01:23 · 2379 阅读 · 0 评论 -
Hibernate ----- 事物的深入理解
事务的成功取决于工作单元的所有SQL语句都执行成功,它必须具备ACID特征,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和持久性(Durability),它们的含义是:(1) 原子性:事务是不可分割的工作单元,事务中所有操作执行成功事务才算成功(2) 一致性:事务不能破坏数据的完整性和一致性(正确性)(3) 隔离性:在并发环境...原创 2018-04-26 15:47:07 · 294 阅读 · 0 评论 -
Hibernate ------ 缓存的理解
为什么hibernate有缓存的机制?hibernate框架作为一个连接着application和database的框架,他需要频繁对物理数据库进行访问。当我们在内存中创建一个缓存的时候,把一些特殊的物理数据库中的数据copy到缓存中,当application进行某些操作的时候,会先在缓存中找是否有想要的结果,有就拿来用,不需要对底层的物理数据库进行操作。这样增加整体的性能。因此需要缓存这个机制。...原创 2018-04-25 23:06:35 · 215 阅读 · 0 评论 -
Hibernate ------ 持久化类
什么是持久化类?编写持久化类的规则:hibernate把持久化类分为三个状态:要注意三者的区别。只要没有持久化OID的就是瞬时态。有OID没有被列入管理的为游离态,有OID也被管理的为持久态。注意三者之间的转换。持久化对象的自动更新...原创 2018-04-25 00:18:59 · 217 阅读 · 0 评论 -
Hibernate ---- 主键生成策略
主键生成策略的整体概括。注意:仔细区分不同主键生成策略的不同,如果主键的生成策略选择错误在执行表的操作的时候,会由于并发和锁的问题导致很多的错误,然后抛出异常。sql语句的结果是:由于他是需要hibernate管理的,所以每次都是先查后插入。如果在程序中设置断点,那么当一个进程查询到了一个id结果,比如是1,但是没有提交的时候,另一个进程如果执行该操作也会先查询,那么查询的结果还是刚刚的id=1....原创 2018-04-24 22:17:37 · 244 阅读 · 0 评论 -
Hibernate ----- list,map 映射
在hibernate内中常用的是set集合,那是否可以使用list集合或者map呢?可以。1.基于集合的映射:list我们有两个实体,为grade和student。当我们把grade中的属性set改为list。配置文件也需要做处理:更改两处:首先把set改为list,然后新增加一个属性为list-index。用来在我们的数据库中表示顺序的(因为set集合是无序的但是list集合是有序的,因此set...原创 2018-04-30 20:04:24 · 346 阅读 · 0 评论 -
Hibernate ----- hibernate如何实现单向n:m、双向n:m
Hibernate ----- hibernate如何实现n:m1.单向的多对多创建两个实体类,role中有一个set的集合,但是function中只有普通的4个属性。相应的配置文件如下:function.hbm.xmltest测试结果:2.双向多对多表的结构不会变化,但是指向是双向上面单项的多对多的代码不变,并在此基础上添加在function中添加一个set属性改变映射文件进行测试数据库:输出...原创 2018-04-30 19:18:59 · 182 阅读 · 0 评论 -
Hibernate -------- 常用的接口和类
目录:-----configuration-----sessionFactory-----session(session 和factory有个缓存的差别:请参考:https://blog.csdn.net/qq_36098284/article/details/80086519)-----transaction1 configuration默认使用config.configure()的时候,读取的...原创 2018-04-23 16:47:53 · 209 阅读 · 0 评论 -
Hibernate ------ myeclipse如何创建一个支持hibernate的项目?
如何便捷的创建一个hibernate项目。首先,我们先说如果使用hibernate框架,如何自动的生成相应的文件,不需要导入相应的包文件等。先使用一个myeclipse创建一个java project项目。使用myeclipse自动添加功能。首先要添加一个数据库视图。选择myeclipse中右上角的这个图标下的database explorer。在视图的左上角会出现这个标志,右键然后选择new。然...原创 2018-04-21 22:37:20 · 2945 阅读 · 0 评论 -
Hibernate ------ myeclipse的反向工程
使用hibernate的时候,如何通过myeclipse自动把一个数据库的表,生成一个持久化的类和一个映射文件。首先创建一个类为com.imooc.entity。存放我们的实例类和映射文件为切换到数据库视图,找到我们要操作的表同时选择两个表,然后右键,选择反向工程。选择mapping文件的存储的包和文件夹。同时选择生成POJP的映射文件,并且选中update那行,表示在hibernate的主配置文...原创 2018-04-21 22:55:51 · 203 阅读 · 0 评论 -
spring+hibernate+springMVC整合配置文件
笔者在学习ssh框架的时候,对整合在一起的配置文件不太理解,因此写下该文记录配置文件的编写。其中的参数属性为必须的,最核心的属性。 ------------------------------------------------------------------------------------------------------------ --------------...原创 2018-06-13 20:30:55 · 489 阅读 · 0 评论