使用的版本为:Struts 2.1.6 + Spring 2.5 + Hibernate 3.2

开发环境为:MyEclipse 7.1.1 + Jdk 1.6.0_13 + Tomcat 6.0.18 + MySQL 6.0.10 alpha

所用表:test.employee

初学S2SH搭建(一)idint(11)NOPRI|NULLauto_increment
初学S2SH搭建(一)
初学S2SH搭建(一)namevarchar(
255)YESNULL
初学S2SH搭建(一)
初学S2SH搭建(一)addressvarchar(
255)YESNULL
初学S2SH搭建(一)
初学S2SH搭建(一)phonevarchar(
255)YESNULL
初学S2SH搭建(一)
初学S2SH搭建(一)

这个实例主要是实现简单的CRUD方法。在搭建环境前,需要处理一个问题:因为Spring2.5 AOP Liberaries里的asm2.2.3.jarHiberate中的生成代理用的asm.jar冲突,我们需要删除asm2.2.3.jar,不然就会发生异常:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 。具体的删除方法(避免在Tomcat中的lib下删除了,然后又重新发布项目时此jar又重新发不到lib下):在MyEclipse中【WindowàPreferencesàMyEclipse Enterprise WorkbenchàProject CapabilitiesàSpring】在spring2.5 AOP Libraries中删除asm2.2.3.jar

初学S2SH搭建(一)

在开发S2SH架构时,先整合Spring + Hibernate ,然后再整合Struts + Spring 完成S2SH架构的搭建。

一、Srping Hibnernate 的整合

1)添加Hibernate支持

在添加Hibernate支持之前,我们先在【MyEclipse DataBase Explorer】中设置数据库连接。所用的mysql/jdbc的jar包为mysql-connector-java-5.1.8-bin.jar。

初学S2SH搭建(一)
注意:
MySQLURL为:jdbc:mysql://localhost:3306/test(我所根据学的视频案例是连接oracle的,根据视频中所学的时候,url没有添加数据库,在测试过程当中怎么样也找到实体,原因就是因为在url中没有添加数据库的选择。)

后面按照默认设置一直到【finish】即可。

a)在导航中找到【MyEclipse】,然后选择【Add Hibernate Capbilities
初学S2SH搭建(一)

这里可以直接选择jar包拷贝到lib下面,也可以先不拷贝,到时候MyEclipse会自动拷贝到lib下。

b)由于Hibernate要与Spring整合,所以在这一步无需再配置更详细的hibernate.cfg.xml
初学S2SH搭建(一)

在这个按列中,我们使用JDBC Driver模式。

c)不创建sessionFactory。然后【finish
初学S2SH搭建(一)
初学S2SH搭建(一)
初学S2SH搭建(一)

2)添加Spring支持

a)在导航中找到【MyEclipse】,然后选择【Add Spring Capbilities

添加5个类库。
初学S2SH搭建(一)

b)生成applicationContext.xml,建议将其放在WEB-INF下面。
初学S2SH搭建(一)

c)创建sessionFactory。然后【finish
初学S2SH搭建(一)
初学S2SH搭建(一)

3)整合SpringHibernate

打开applicationContext,在当中增加DataSourceSessionFactory

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="configLocation"

value="classpath:hibernate.cfg.xml">

</property>

</bean>

先将原先自动生成的上述代码删除。
初学S2SH搭建(一)

然后再Outline的导航中选择【New DataSource and SessionFactory
初学S2SH搭建(一)

后面要用到Mapping Resources,所以你可以在这里随便填一个值进去。
初学S2SH搭建(一)
最后添加部分属性(添加了
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>

自此已经完成了SpringHibernate的整合。

相关文章: