Produced By 中国煤炭开发有限责任公司
主页 > 公司要闻 >

Hibernate--基础配置

Hibernate设置设置设备摆设摆设文件可以有两种款式,一种是hibernate.properties,另一种是hibernate.cfg.xml。后者轻细方便一些,当增添hbm映射文件的时刻,可以直接在hibernate.cfg.xml里面增添,不必像hibernate.properties必须在初始化代码中加入。

但不管怎么说,两种的设置设置设备摆设摆设项都是一样的,下面具体先容:

在Hibernate的src目录下有一个hibernate.properties模板,我们不必自己从头写,改动模板就可以了:)

hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N'

这个设置设置设备摆设摆设意思是当你在Hibernate里面输入true的时刻,Hibernate会转化为1插入数据库,当你在Hibernate里面输入false的时刻,Hibernate会转化为0插入数据库,后面的Y,N同理。

对付某些数据库,例如Oracle来说,没有boolean数据类型,便是采纳1代表true,0代表false,是以应用这个设置设置设备摆设摆设在Hibernate里面直接用true/false会异常直不雅。

hibernate.dialect net.sf.

hibernate.dialect.MySQLDialect

hibernate.connection.driver_class com.mysql.jdbc.Driver

hibernate.connection.url jdbc:mysql:///testhibernate.connection.username root

hibernate.connection.password

这是一个连接MySQL数据库的例子,很直不雅,不必解释,不合的数据库的连接参数模板中整个给出了。

hibernate.connection.pool_size 1

hibernate.statement_cache.size 25

这是Hibernate自带的连接池的设置设置设备摆设摆设参数,在默认环境下将采纳。意义很直不雅,不多解释。

只是提醒一点,Hibernate这个连接池是异常原始异常简单的连接池,假如你在项目顶用Hibernate的话,建议你首选App Server的连接池,次选Hibernate带的DBCP连接池。自带的连接池应该做为末选。

假如你采纳DBCP连接池,除了要设置设置设备摆设摆设DBCP连接池以外,还必要取消掉落下行的注释:

hibernate.connection.provider_class net.sf.hibernate.connection.DBCPConnectionProvider

其它的连接池同理。

假如采纳App Server的连接池,假设App Server连接池的DataSource的JNDI名称为“mypool”的话,设置设置设备摆设摆设应该如下:

hibernate.dialect net.sf.

hibernate.dialect.MySQLDialec

thibernate.connection.datasource mypoolhibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider

其它参数就不必写了,由于已经在App Server设置设置设备摆设摆设连接池的时刻指定好了。

假如你不是在App Server情况中应用Hibernate,例如远程客户端法度榜样,然则你又想用App Server的数据库连接池,那么你还必要设置设置设备摆设摆设JNDI的参数,例如Hibernate连接远程Weblogic上的数据库连接池:

hibernate.dialect net.sf.hibernate.dialect.MySQLDialect

hibernate.connection.datasource mypool

hibernate.connection.provider_class net.sf.

hibernate.connection.DatasourceConnectionProviderhibernate.jndi.class weblogic.jndi.WLInitialContextFactory

hibernate.jndi.url t3://servername:7001/

着末,假如你必要在EJB或者JTA中应用Hibernate,必要取消下行的注释:

hibernate.transaction.factory_class net.sf.hibernate.transaction.JTATransactionFactory

杂项设置设置设备摆设摆设:

hibernate.show_sql false

是否将Hibernate发送给数据库的sql显示出来,这是一个异常异常有用场的功能。当你在调试Hibernate的时刻,让Hibernate打印sql语句,可以赞助你迅速办理问题。

#hibernate.connection.isolation 4

指定命据库的隔离级别,每每不合的数据库有自己定义的隔离级别,未必是Hibernate的设置所能变动的,以是也不必去管它了。

hibernate.jdbc.fetch_size 50hibernate.jdbc.batch_size 25

这两个选项异常异常异常紧张!!!将严重影响Hibernate的CRUD机能!

C = create, R = read, U = update, D = delete

Fetch Size 是设定JDBC的Statement读取数据的时刻每次从数据库中掏出的记录条数。

例如一次查询1万笔记录,对付Oracle的JDBC驱动来说,是不会1次性把1万条掏出来的,而只会掏出Fetch Size条数,当记载集遍历完了这些记录今后,再去数据库取Fetch Size条数据。

是以大年夜大年夜节省了无谓的内存耗损。当然Fetch Size设的越大年夜,读数据库的次数越少,速率越快;Fetch Size越小,读数据库的次数越多,速率越慢。

这有点像日常平凡我们写法度榜样写硬盘文件一样,设立一个Buffer,每次写入Buffer,等Buffer满了今后,一次写入硬盘,事理相同。

Oracle数据库的JDBC驱动默认的Fetch Size=10,是一个异常守旧的设定,根据我的测试,当Fetch Size=50的时刻,机能会提升1倍之多。

Produced By 中国煤炭开发有限责任公司