2005-8-20 09:13下午
hibernate 顯式使用trasaction通常用于跨越多個(gè)http get請(qǐng)求的事務(wù)要求時(shí)使用,否則可以直接使用隱式的事務(wù)模式
hibernate開發(fā)步驟
1.撰寫所有的pojo與數(shù)據(jù)庫(kù)對(duì)應(yīng)
2.撰寫與pojo對(duì)應(yīng)的hbm.xml
3.撰寫業(yè)務(wù)操作類,操作pojo
4.撰寫配置hibernate.cfg.xml
5.撰寫build.xml自動(dòng)部署
5.發(fā)布:hibernate3.jar
為hibernate程序提供運(yùn)行參數(shù)的方式:
1.
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class)
.addClass(org.hibernate.auction.Bid.class)
.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect")
.setProperty("hibernate.connection.datasource", "java:comp/env/jdbc/test")
.setProperty("hibernate.order_updates", "true");
向configuration傳遞java property
2.撰寫hibernate.properties文件在classpath的根目錄
3.使用java -Dname=value提供參數(shù)
4.在hibernate.cfg.xml文件中使用property節(jié)點(diǎn)
開發(fā)過程中曾出現(xiàn)的問題:
*.cfg.xml中的class節(jié)點(diǎn)寫成"UserInfo",應(yīng)該是"studyHibernate.UserInfo"
造成"cound not load mappings from userinfo.hbm.xml"異常"
*.build.xml中的class節(jié)點(diǎn)寫成"UserInfoManager",應(yīng)該是"studyHibernate.UserInfoManager"
*.將hbm.xml和cfg.xml放在的相應(yīng)的包目錄中應(yīng)該將其放在src根目錄下
,否則造成"NoDefClassFound"異常.
*.build.xml應(yīng)放在項(xiàng)目目錄下
*.將db2java.zip拷貝到lib目錄后,運(yùn)行有錯(cuò),說不能找到db2的jdbc驅(qū)動(dòng),原因是容器并不解壓zip文件,將該文件名改為db2java.jar后運(yùn)行正常
db2的jdbc連接有4種方式,ibm網(wǎng)站有一篇文章詳述,我使用的如下的方式,
1
<?xml version='1.0' encoding='utf-8'?>
2
<!DOCTYPE hibernate-configuration PUBLIC
3
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
5
6
<hibernate-configuration>
7
8
<session-factory>
9
10
<!-- Database connection settings -->
11
<property name="connection.driver_class">COM.ibm.db2.jdbc.net.DB2Driver</property>
12
<property name="connection.url">jdbc:db2://localhost:50000/lw2005</property>
13
<property name="connection.username">db2admin</property>
14
<property name="connection.password">Db2admiN</property>
15
16
<!-- JDBC connection pool (use the built-in) -->
17
<property name="connection.pool_size">1</property>
18
19
<!-- SQL dialect -->
20
<property name="dialect">org.hibernate.dialect.DB2Dialect</property>
21
22
<!-- Echo all executed SQL to stdout -->
23
<property name="show_sql">true</property>
24
<property name="format_sql">true</property>
25
26
<!-- Drop and re-create the database schema on startup -->
27
<property name="hbm2ddl.auto">create</property>
28
29
<mapping resource="userinfo.hbm.xml"/>
30
31
</session-factory>
32
33
</hibernate-configuration>