Hibernate 配置

来源:互联网 发布:淘宝的运行模式 编辑:程序博客网 时间:2024/05/17 06:29
Hibernate基础信息配置

为了能在各种不同的工作环境下工作

具有大量的配置参数

所有属性的名字和语义都在 org.hibernate.cfg.Environment类中定义

Hibernate的JDBC属性

-weight:bold;c

属性名

用途


hibernate.connection.driver_class

jdbc驱动类


hibernate.connection.url

jdbc URL


hibernate.connection.username

数据库用户

hibernate.connection.password

数据库用户密码


hibernate.connection.pool_size

自带连接池容量上限数目

连接池属性

Hibernate连接池 1:使用Hibernate自带的连接池(算法不成熟) 2:使用配置文件指定的数据库连接池。 3:从容器中获取得到连接池(如:Tomcat)
出于性能和稳定性考虑应该使用第三方的连接池 - C3P0 - Proxool
使用C3P0

tyle='font-fam

Hibernate.c3p0.min_size 

连接池中可用数据库连接的最小数目 

Hibernate.c3p0.max_size 

连接池中所有数据库连接的最大数目 

Hibernate.c3p0.time_out 

数据库连接的超时时间 

Hibernate.c3p0.max_statement 

可以被缓存的PreparedStatement的最大数目

连接池属性

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider </property> <property name="hibernate.c3p0.max_size">20</property> <property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.timeout">120</property> <property name="hibernate.c3p0.max_statements">100</property> <property name="hibernate.c3p0.idle_test_period">120</property> <property name="hibernate.c3p0.acquire_increment">2</property>

连接池属性

使用proxool - 导入proxool-0.9.0RC3.jar包 - 创建proxool.xml文件和 hibernate.cfg.xml放在一起

<?xml version="1.0" encoding="utf-8"?>
<something-else-entirely>
  <proxool>
    <alias>xml-test</alias>
    <driver-url>jdbc:mysql://localhost:3306/telecom</driver-url>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <driver-properties>
      <property name="user" value="root"/>
      <property name="password" value=""/>
      <property name="useUnicode" value="true"/>
      <property name="characterEncoding" value="utf-8"/>
      <property name="zeroDateTimeBehavior" value="convertToNull"/>
    </driver-properties>
    <maximum-connection-count>10</maximum-connection-count>
    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
  </proxool>
</something-else-entirely>

在hibernate.cfg.xml中作配置
  <property name=“proxool.pool_alias”>xml-test</property> <!--这个名字要和XML文件中的别名要对应--> <property name=“proxool.xml”>Proxool.xml</property> <!--这个是建立的XML文件的名字--> <property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>   

从容器中获取得到连接池

在容器中配置数据源

在hibernate.cfg.xml中指定使用这个名为“jdbc/feifei”的JNDI     <property name=”hibernate.connection.datasource”>java:/comp/env/jdbc/test </property>

从容器中获取得到连接池

在容器中配置数据源

在hibernate.cfg.xml中指定使用这个名为“jdbc/feifei”的JNDI     <property name=”hibernate.connection.datasource”>java:/comp/env/jdbc/test </property>

Hibernate可选配置属性

tyle='font-fam

属性名 

用途 

hibernate.show_sql 

输出所有SQL语句到控制台. 

hibernate.format_sql 

格式化输出SQL语句

hibernate.generate_statistics 

Hibernate将收集有助于性能调节的统计数据 

hibernate.use_sql_comments 

SQL中生成有助于调试的注释 

……

 Hibernate实体映射文件配置

一个普通PO对象的映射文件组成部分(User.hbm.xml)


Class节点配置说明

dth=104>

参数

说明

类型

必须

name

类名

text

table 

类对应的表名 ,默认值:当前类名 

text

dynamic-update 

生成Update SQL时,仅包含发生变

动的字段, 默认值: false

Bool

dynamic-insert 

生成Insert SQL时,仅包含发生变

动的字段, 默认值: false

Bool

discriminator-value

子类辨别标识,用于多态支持。 

text

where 

数据筛选选条件,如果只需要处理库表中某些特定数据的时候,可通过此选项设定结果集限定条件。 

text

mutable

类是否会发生改变

ID节点配置说明

h:64pt' width=

参数

说明

类型

必须

name

映射类中对应表主键的属性名

Text

N

column

主键字段名 ,  默认值:当前类名

Text

N

type

字段类型

Text

N

length

字段长度 

Text

N

unsaved-value 

用于对象是否已经保存的判定值。

Text

N

access

类属性访问方式

Text


generator class节点配置说明

参数

说明

类型

必须

assigned

主键由外部程序负责生成,无需

Hibernate参与。





hilo 

通过 hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。





increment

主键按数值顺序递增。

identity

采用数据库提供的主键生成机制。

如 DB2SQL  ServerMySQL

中的主键生成机制。

sequence 

采用数据库提供的 sequence 机制生成主键。如Oralce

uuid.hex

Hibernate基于 128 位唯一值产生算法生成

16 进制数值(编码后以长度32的字符串表示)

作为主键。

native

hibernate根据,Dialect,



属性/字段映射配置说明

参数

说明

类型

必须

name

映射类属性名

Text

Y

column

对应数据库表字段

Text

N

type

字段类型

Text

N

length

字段长度 

Text

N

update

Update时,是否包含此字段

Bool

N

insert

Insert时,是否包含此字段

Bool

N

not-null

字段是否允许为空 

Bool

N

formula

表达式属性

Text

N

lazy

延迟加载属性

Bool

N

unique

字段是否唯一(是否允许重复值)

Bool



内置映射类型

lob

Hibernate映射类型 

说明

SQL类型 

大小 

integer/int 

java.lang.Integer/int 

INTEGER 

4

long 

java.lang.Long/long 

BIGINT 

8

big_decimal 

java.math.BigDecimal 

NUMERIC

N

string 

java.lang.String 

VARCHAR 

变长

boolean 

java.lang.Boolean/Boolean 

BIT 

布尔

date 

java.util.Date/java.sql.Date 

DATE 

日期

timestamp 

java.util.Date/java.util.Timestamp 

TIMESTAMP 


clob 

java.sql.Clob 

CLOB 

CLOB 

blob 

java.sql.Blob 

BLOB 

b



0 0
原创粉丝点击