開(kāi)發(fā)環(huán)境為:MyEclipse 7.1.1 + Jdk 1.6.0_13 + Tomcat 6.0.18 + MySQL 6.0.10 alpha
所用表:test.employee









這個(gè)實(shí)例主要是實(shí)現(xiàn)簡(jiǎn)單的CRUD方法。在搭建環(huán)境前,需要處理一個(gè)問(wèn)題:因?yàn)?/span>Spring2.5 AOP Liberaries里的asm2.2.3.jar和Hiberate中的生成代理用的asm.jar沖突,我們需要?jiǎng)h除asm2.2.3.jar,不然就會(huì)發(fā)生異常:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 。具體的刪除方法(避免在Tomcat中的lib下刪除了,然后又重新發(fā)布項(xiàng)目時(shí)此jar又重新發(fā)不到lib下):在MyEclipse中【Window】à【Preferences】à【MyEclipse Enterprise Workbench】à【Project Capabilities】à【Spring】在spring2.5 AOP Libraries中刪除asm2.2.3.jar

在開(kāi)發(fā)S2SH架構(gòu)時(shí),先整合Spring + Hibernate ,然后再整合Struts + Spring 完成S2SH架構(gòu)的搭建。
一、Srping 與 Hibnernate 的整合
(1)添加Hibernate支持
在添加Hibernate支持之前,我們先在【MyEclipse DataBase Explorer】中設(shè)置數(shù)據(jù)庫(kù)連接。所用的mysql/jdbc的jar包為mysql-connector-java-5.1.8-bin.jar。
注意:MySQL的URL為:jdbc:mysql://localhost:3306/test(我所根據(jù)學(xué)的視頻案例是連接oracle的,根據(jù)視頻中所學(xué)的時(shí)候,url沒(méi)有添加數(shù)據(jù)庫(kù),在測(cè)試過(guò)程當(dāng)中怎么樣也找到實(shí)體,原因就是因?yàn)樵?/span>url中沒(méi)有添加數(shù)據(jù)庫(kù)的選擇。)
后面按照默認(rèn)設(shè)置一直到【finish】即可。
(a)在導(dǎo)航中找到【MyEclipse】,然后選擇【Add Hibernate Capbilities】
這里可以直接選擇jar包拷貝到lib下面,也可以先不拷貝,到時(shí)候MyEclipse會(huì)自動(dòng)拷貝到lib下。
(b)由于Hibernate要與Spring整合,所以在這一步無(wú)需再配置更詳細(xì)的hibernate.cfg.xml
在這個(gè)按列中,我們使用JDBC Driver模式。
(c)不創(chuàng)建sessionFactory。然后【finish】
(2)添加Spring支持
(a)在導(dǎo)航中找到【MyEclipse】,然后選擇【Add Spring Capbilities】
添加5個(gè)類庫(kù)。
(b)生成applicationContext.xml,建議將其放在WEB-INF下面。
(c)創(chuàng)建sessionFactory。然后【finish】
(3)整合Spring和Hibernate
打開(kāi)applicationContext,在當(dāng)中增加DataSource和SessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> |
先將原先自動(dòng)生成的上述代碼刪除。
然后再Outline的導(dǎo)航中選擇【New DataSource and SessionFactory】
后面要用到Mapping Resources,所以你可以在這里隨便填一個(gè)值進(jìn)去。
最后添加部分屬性(添加了hibernate.show_sql)后形成代碼如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/test"></property> <property name="username" value="root"></property> <property name="password" value="123"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingDirectoryLocations"> <list> <value>file:src</value> </list> </property> </bean> |
自此已經(jīng)完成了Spring與Hibernate的整合。