![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate框架
qq_38198467
简化思维
展开
-
Hibernate框架复习11-数据库表关系的分类及建表原则(多表操作)
表与表的关系一对一 一对多 多对多建表原则一对多关系:在多的一方建立外键指向一的一方的主键多对多关系:创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键...原创 2019-04-20 17:17:04 · 118 阅读 · 0 评论 -
Hibernate框架复习02-使用log4j简化控制台输出信息(步骤)
第一步导入jar包——log4j-1.2.16.jar并且把jar包加入工程第二步导入配置文件——log4j.properties信息解读级别error只显示error信息warn显示warn error信息,比自己严重的信息info会显示 info debug trace级别的信息debug调试信息,会把上面的都显示trace栈信息...原创 2019-04-19 19:37:38 · 100 阅读 · 0 评论 -
Hibernate框架复习03-在hibernate框架中使用C3P0连接池(步骤)
第一步引入C3P0的三个jar包c3p0-0.9.5.2.jarhibernate-c3p0-5.3.1.Final.jarmchange-commons-java-0.2.11.jar第二步在hibernate核心配置文件(hibernate.cfg.xml)中加入C3P0的配置信息<!--配置C3P0连接池--> <property n...原创 2019-04-19 19:58:55 · 255 阅读 · 0 评论 -
Hibernate框架复习04-使用hibernate中基本的CRUD操作
hibernate中基本的CRUD操作(增删改查)首先是提前的准备工作Configuration configure = new Configuration().configure();SessionFactory sessionFactory = configure.buildSessionFactory();Session session = sessionFactory.ope...原创 2019-04-20 00:30:58 · 129 阅读 · 0 评论 -
Hibernate框架复习05-hibernate引入了C3P0后的注意事项(事务)
没有引入C3P0连接池的时候hibernate会自动提交事务,引入了c3p0连接池后对数据库的增删改操作要手动添加事务如果不添加事务,hibernate不会报错,但是也不会执行相应的操作Transaction transaction = session.beginTransaction();//开启事务 transaction.commit();//提交事务 别忘了每次操作过后要关闭...原创 2019-04-20 00:32:36 · 104 阅读 · 0 评论 -
Hibernate框架复习06-hibernate主键分类及生成策略(主键问题)
主键的分类自然主键指的是将表中的某一字段作为这个表的主键,比如身份证就可以作为自然主键代理主键指的是不使用自然主键,而单独的创建一个字段作为表的主键,这个字段本身和表没有必然联系,只是用来单独唯一区分每一行的数据的Hibernate中主键的生成策略开发中使用uuid(常用):适用于字符串类型的主键,基本适用于所有的数据库native:在identity和sequence自...原创 2019-04-20 14:37:17 · 182 阅读 · 0 评论 -
Hibernate框架复习07-hibernate中对象的划分(三种对象)
hibernate中将对象划分成三种类型瞬时态 持久态(具备自动更新数据库的能力) 游离态详细介绍瞬时态对象:没有唯一的id,也没有被session对象管理(没有被session方法调用)。持久态对象(能自动更新数据库):有唯一的id,同时也被session对象所管理。游离态对象:有唯一的id,但是没有被session对象所管理。注意这三种状态时可以相互转换...原创 2019-04-20 15:02:24 · 116 阅读 · 0 评论 -
Hibernate框架复习08-hibernate中的一级缓存和快照区(理解)
hibernate中存的一级缓存缓存的作用:优化数据库操作的性能,对于相同的内容,可以直接在缓存中直接取,不用再次访问数据库hibernate中的一级缓存:属于session级别(本质是session中的一系列集合),生命周期和session一致一级缓存在hibernate中的应用:当调用数据库操作的时候,如果session缓存中没有相应的对象,就会在缓存中保存一份。再次查询的时候如果...原创 2019-04-20 16:08:04 · 167 阅读 · 0 评论 -
Hibernate框架复习09-hibernate事务的隔离级别(事务)
事务一组逻辑操作,要么全部成功,要么全部失败,不会中间断开。hibernate事务的隔离级别Read uncommitted:所有问题都会发生Read committed:解决脏读问题Repeatable read:解决脏读和不可重复读Serializable:解决所有问题,效率较低hibernate中事务隔离级别的设置在核心配置文件hibernate.cfg.xm...原创 2019-04-20 16:28:33 · 138 阅读 · 0 评论 -
Hibernate框架复习01-快速构建hibernate工程(步骤)
第一步创建一个Java工程或者web工程第二步引入必须的jar包,在hibernate目录的required目录下除此之外还必须有的,数据库的驱动包为了方便pojo类的get和set,可以引入lombok包第三步在数据库中建立表第四步在工程中创建与表相对应的类第五步创建hibernate的核心配置文件hibernate.cfg.xml第六步创建数...原创 2019-04-19 16:22:18 · 99 阅读 · 0 评论 -
Hibernate框架复习19-hibernate中的查询方式QBC(重点)
QBC查询方式hibernate中的一种更加面向对象的查询方式简单查询排序查询分页查询条件查询方式(重点)能设置的条件目录单个条件多个条件统计查询这里还有很多聚合函数的api,需要自己下来查询文档离线条件查询(很重要)...原创 2019-04-21 19:50:19 · 152 阅读 · 0 评论 -
Hibernate框架复习11-hibernate多表实体类与映射文件配置(步骤)
第一步创建好数据库表,以及配置好表的外键联系第二步在工程中创建好pojo类,注意数据类型要和数据库中的对应第三步创建好实体类的映射文件,并配置好基本字段的映射关系(这个时候不要配置外键,外键单独配置)第四步维护pojo类中的对象关系,在一对多的一的表中创建集合(一般是set集合)维护关系,在一对多关系的多中创建一的对象维护关系第五步在映射配置文件中配置多表之间的...原创 2019-04-20 19:33:52 · 237 阅读 · 0 评论 -
Hibernate框架复习12-hibernate懒加载机制及去除懒加载(易错)
hibernate懒加载机制懒加载机制是一种性能优化的机制,当查询一个表中的信息包含另外一个表的信息,如果没有直接使用到另外一个表,那么hibernate不会级联的将另外一个与之关联的表也查出来,只有当你直接使用到另外一个表的信息的时候才会重新发送语句进行查询,前提是事务没有提交(session没有被关闭)如何关闭懒加载机制在对应的表和类关系映射的配置文件中加上 lazy=false即...原创 2019-04-20 20:24:14 · 309 阅读 · 0 评论 -
Hibernate框架复习13-级联保存与双向维护防止瞬时对象异常
hibernate级联保存和更新配置在对应的**.hbm.xml映射配置文件中添加上cascade="save-update"即可 使用场景:当两个表存在关联关系的时候,如果保存一个表的信息同时想保存或更新另一张表的内容需要此配置瞬时对象异常(配置级联操作可解决)一个表保存另一个表的对象的时候,另外一个对象并没有获取session(也就是瞬时对象)这个时候就不...原创 2019-04-21 11:20:34 · 124 阅读 · 0 评论 -
Hibernate框架复习14-级联删除的配置
hibernate中级联删除的配置在对应的object.hbm.xml文件中添加属性 cascade="delete" 可以和级联更新同时添加 添加了级联删除配置之后,如果删除一个表中的信息,他也会把这个表所关联的另一个表的对象信息也删除使用时要根据实际生产场景来...原创 2019-04-21 11:20:45 · 116 阅读 · 0 评论 -
Hibernate框架复习15-多表联系的双向维护与外键维护权
双向维护开发当中存在多表操作的时候一般建议使用双向维护,也就是一来一回,双方都操作一下,比如这个表添加了一下对方,那么对方也添加一下自己双向维护性能问题使用双向维护会降低性能,因为发送了同样功能的sql语句外键维护权所以在使用双向维护的时候可以让没有外键的一方放弃外键的维护权放弃外键维护权配置在对应的object.hbm.xml文件中添加配置inverse="true"...原创 2019-04-21 11:20:51 · 210 阅读 · 0 评论 -
Hibernate框架复习16-多对多关系表的配置与操作(步骤)
第一步在数据库中建立表,并建立一张中间表,使用外键将两个表关联起来(使用中间表对应的主键指向关系表对应的主键)第二步在工程中建立ORM关系映射类(数据库中有那个字段就要写上哪些字段,同时配置好集合存放对应的关联数据)第三步配置关系映射文件object.hbm.xml(配置好主键和普通字段再配置外键字段,因为外键要单独配置)严重注意:这里要设置一个table的属性,...原创 2019-04-21 16:25:18 · 97 阅读 · 0 评论 -
Hibernate框架复习17-多对多关系中的双向维护及问题(易错)
hibernate中多对多使用双向维护存在的问题在hibernate中,如果使用双向维护,那么必须要求某一方放弃外键维护权,如果不是这样,那么在保存、更新或者其他操作的时候会出现主键冲突的问题,因为他们对主键进行了重复的操作。放弃主键维护权的原则一般来讲,要求动作少的(被动的)哪一方放弃外键维护权,这样不会造成过多的操作,从而减小了影响放弃外键维护权的配置在对应类的xx.hbm...原创 2019-04-21 16:33:36 · 187 阅读 · 0 评论 -
Hibernate框架复习18-hibernate中的查询方式HQL(重点)
HQL查询方式介绍:hibernate内提供的一种查询方式,是面向对象的查询方式使用方法:通过session.createQuery(),用于接收一个HQL进行查询方式。具体查询方式分为以下:简单查询别名查询排序查询条件查询(1)位置绑定(已经弃用)(2)名称绑定(开发使用)投影查询查询对象中的某个或者某些属性(部分属性查询...原创 2019-04-21 19:49:22 · 118 阅读 · 0 评论 -
Hibernate框架复习10-hibernate绑定本地线程统一对象(事务)
使用事务的时候,session对象应该是同一个,这样开启的事务才算有效javaweb三层架构中一般是在service层开启事务,在dao层中使用,但是这个时候要保证他们使用的session对象是同一个对象hibernate配置本地线程对象(ThreadLocal)在hibernate核心配置文件中配置<property name="current_session_conte...原创 2019-04-20 16:42:50 · 127 阅读 · 0 评论