Hibernate高级应用

发布 2021-04-26 15:08:28 阅读 5464

hibernate提供orm功能,既然要和数据库打交道就需要知道与数据库有关的信息,这些信息可以被程序共享,相同的数据库只需配置一次。下面介绍一下与此有关的内容:

的一个实例代表了应用程序中所有的j**a类到sql数据库的映射的集合。configuration用于构造一个(不可变的)sessionfactory。这些映射是从一些xml映射文件中编译得来的。

configuration是仅在配置期使用的对象,从第一个sessionfactory开始建立的时候,它就失效了。

当所有的映射都被configuration解析之后,应用程序为了得到session实例,必须先得到它的工厂。sessionfactory负责一个数据库,也只对应一个xml配置文件(通过在创建 sessionfactory之前(它是不可变的),你可以访问configuration来设置其他属性(甚至修改映射的元数据)。

sessionfactory可以创建并打开新的session。一个session代表一个单线程的单元操作,sessionfactory则是一个线程安全的全局对象,只需要创建一次。

指定配置属性有以下五种方法。

1)使用configuration的setproperty()方法。在程序中指定,这样需要每个客户程序重复工作,但是可以临时修改参数。例如:

configuration config = new configuration();

2)传一个实例给例如:

configuration config = new configuration();

properties = new

3)将放置在类路径的根目录下。例如:

configuration conf = new configuration();

文件内容:jdbc:oracle:thin:@192.168.0.2:1521:ydorclzbzb

4)通过j**a –dproperty=value来设置系统属性。

5)在中加入元素。

配置文件提供了更易读的结构和更强的配置能力,可以直接对映射文件加以配置,而在properties 文件中则无法配置,必须通过**中的hard coding加载相应的映射文件。

配置文件名默认为“或者 初始化期间会自动在classpath 中寻找这个文件,并读取其中的配置信息,为后期数据库操作做好准备。

下面是对各项配置属性的说明:

hibernate需要知道怎样去加载(load)和存储(store)我们的持久化对象。这里正是hibernate映射文件发挥作用的地方。映射文件(mapping file)告诉hibernate它应该访问数据库里面的那个表(table)和应该使用表里面的那些字段(column)。

映射文件包含了对象/关系映射所需的元数据。元数据包含:

1)持久化类的声明。

2)属性到数据库的映射(指向字段和其他实体的外键关联)。

对象和关系数据库之间的映射是用一个xml文档(xml document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以j**a为中心的,意味着映射是按照持久化类的定义来创建的,而非表的定义。

映射文件中的元素说明了对象和表的映射关系。下面是一些常用的基本元素。

hibernate-mapping元素定义有关数据库操作的一些属性。

schema="schemaname1)

catalog="catalogname2)

default-cascade=" cascade_style3)

default-access="field|property|classname4)

dalault-lazy="true|false5)

auto-import="true|false6)

package="

1) schema (可选): 数据库schema名称。

2) catalog (可选): 数据库catalog名称。

3) default-cascade (可选 - 默认为 none): 默认的级联风格。

4) default-access (可选 - 默认为 property): hibernate用来访问属性的策略。可以通过实现propertyaccessor接口自定义。

5) dalault-lazy (可选 - 默认为 true): 指定了未明确注明lazy属性的j**a属性和集合类,hibernate会采取什么样的默认加载风格。

6) auto-import (可选 - 默认为 true): 指定是否我们可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。

7) package (可选): 指定一个包前缀,如果在映射文档中没有指定全限定名,就使用这个包名。

你可以使用class元素来定义一个持久化类:

name="classname1)

table="tablename2)

discriminator-value="discriminator_value3)

mutable="true|false4)

schema="owner5)

catalog="catalog6)

proxy="proxyinterface7)

hibernate高级查询

1.将数据部署完成。2.通过session完成删除,更新,增加,获取,查询。使用session接口 cud时比较方便。get,load hibernate的另外的查询方式 hibernate query language query by creteria 3.任务 通过向导的方式,为fwxx项目添...

Hibernate复习笔记

hibernate 复习笔记。的结构体系包括持久化类 实体层 映射文件 配置文件 a.持久化类 实体层 每个对象映射一张表每个对象中的属性映射该表的属性。b.映射文件提供映射路径 即 a对象中c属性映射 a表中 c字段 并可设置表与表之间的映射关系。c.配置文件设置数据库连接信息并包含映射文件路径 ...

强人Hibernate笔记 上中下

hibernate文档笔记共分为三个部分,此处是第一部分,讲述了对象定义 实例状态 jmx集成和jca 支持四个部分的内容。一 对象定义。对于单个数据库,被编译的映射,是一个线程安全的缓冲区。是一个session和connectionprovider客户端的工厂。拥有可选的对过程级和集群级重复利用的...