Hibernate
文章平均质量分 68
人圭先生
努力在互联网大海的浪潮中不翻船前进
前身码农,现互联网创业者一枚
展开
-
Hibernate框架-----多对一映射(三)
概念 基本映射就是对一个实体类进行映射,但是关联映射就是处理过个实体类之间的关系,将他们之间的关联关系映射到数据库中。 映射语句 对于多对一映射:<many-to-one name="属性名" class="关联的实体类" column="数据库对应的字段">注意:如果要关联的实体类和映射的此类没有在一个包底下,一定要在class中写完整的类路径,要不将会映射失败报错。<hibernate-m原创 2016-12-24 09:51:43 · 380 阅读 · 0 评论 -
Hibernate框架-------一对多映射(四)
本来一对多映射可以和多对一映射放在一块,上篇贴有代码显得太长就分开写吧,这样看起来更清晰。一对多映射的配置文件<set name="Product" lazy="false"> <key column="cid" not-null="false"> <one-to-many class="com.vipcpi.Product"> </set>配置文件解释set用于设置一对多、多对多的原创 2016-12-24 18:31:24 · 325 阅读 · 0 评论 -
Hibernate框架-------多对多映射(五)
如果要实现多对多关系,必须有一张中间表来用于维护用户User和产品Product之间的关系,这张表里放的是两张表各自的主键值,通过主键与主键的关系来体现两张表的关系。其实多对原创 2016-12-24 21:11:29 · 426 阅读 · 0 评论 -
Hibernate入门详解(一)
在使用Hibernate的时候使得访问数据库变得非常的容易,因为之前使用JDBC的时候做数据库相关功能开发会有许多重复性的工作,但是Hibernate将会使其变得非常容易简单,代码也比较简洁。比如我们先创建一个实体类Product,用来映射数据库中的表product_package com.vipcpi;public class Product { int id; String na原创 2016-12-19 23:57:30 · 438 阅读 · 0 评论 -
Hibernate框架-----属性延迟加载和关系延迟加载(七)
属性的延迟: 我们之前在获取一条数据的时候采用的都是Session的get方法,这种方式不是延迟加载,也就是调用这个方法就会立刻访问数据库查出此对象的数据,当我们采用Session的load方法时,采用的是属性延迟加载,就是只有在访问这个对象的属性,hibernate才会访问数据库进行查询。 下面两种代码和测试结果一看就明白。 1.get方法,非延迟 Product p=(Prod原创 2016-12-27 00:00:06 · 2691 阅读 · 1 评论 -
Hibernate框架-----缓存(八)
Hibernate的缓存分为了一级缓存和二级缓存,二级缓存又被称为外置缓存。 一级缓存 hibernate的一级缓存默认是开启的,一级缓存存放在session上,比如每个session对同一个id进行了两次get或load,并不会发送两条sql给数据库,Session关闭的时候,一级缓存就会失效。 二级缓存 而hibernate的二级缓存是SessionFactor原创 2016-12-27 16:35:57 · 365 阅读 · 0 评论 -
Hibernate中的数据查询(二)
先来回忆下对象状态,实体类在Hibernate中有三种状态,分别是瞬时、持久和脱管状态。 瞬时就是实体类没有和Hibernate没有任何关系,在数据库中也没有对应的记录,JVM消失这个对象也就消失了,也就是new了一个对象。 持久就是对象和Hibernate发生了关系,有对应的session,并且在数据库中有对应的记录,代码中session的save就将该对象保存在了数据库中,该对象也和sessio原创 2016-12-22 00:00:42 · 400 阅读 · 0 评论 -
Hibernate框架-------事务与Session(六)
从之前的代码中我们可以看到,Hibernate中的事物一般是由s.beginTranscation()开始,由s.getTranscation().commit()结束,这个事务一旦开启,无论你中间进行了什么操作多少操作,这些操作都在一个事务中,如果其中任意一个失败了,那么所有的操作都是失败的,因为这个错误没有导致事务运行成功。这是什么情况? 因为数据库事务必须具备ACID特性:原创 2016-12-26 11:23:50 · 714 阅读 · 0 评论 -
Hibernate框架---- N+1是什么?它们的list和iterator区别(九)
之前我们说过hibernate的缓存机制,可以将它看成一个Map,通过key在缓存里面找value。 hibernate通过query查询放查询数据,比如我们要查询100条数据,但是其中40条已经缓存在缓存中了,但是使用query的list方法,那么这100条数据就会全部从数据库中查询,而会无视缓存中存在40条数据。 那么N+1是什么?hibernate执行一条sql语句查询这100条原创 2016-12-28 11:43:47 · 985 阅读 · 0 评论