Spring2.5.3+Hibernate3.2+Struts2.0.11整合
只有Struts2基础(初学Hibernate/Spring第三天就想着整合),有些地方不是很懂,看了网上大部分的例子、blog,百分百的MyEclipse插件,本人不太习惯使用MyEclipse,主要是Eclipse使用的时间比较长,使用MyEclipse6.0.1时(第一次用)比如你要输入.getHibernateTemplate()时,输入点时就有提示,但是当我输入点后面的字母出错时,只能返回到输入点之前才按点“.”可以提示,按ALT+/也不会出现,是不是我不知道快捷键,或是其它的方式,总之我在Eclipse中输入一半错误时按ALT+/可以又出来提示,虽然不是特依赖提示功能,但是用起来还是不爽,毕竟每天都在使用它,哪位要是知道的话烦请告诉一声[email protected]。
仅仅看了两天的官方文档就写了这个整合的新闻发布系统,感觉蛮好的,是个好的开始 come on!
以下是一个新闻发布系统的登录模块:(两天看文档,一夜写成的,不是很完善,仅仅实现基本的增删查改功能,主要是整合练习)
首先配置三个框架,有人说要是使用MyEclipse自动生成会有顺序Spring->Hibernate->Struts,太依赖工具不是本人的习惯,这些是后话。
开发工具Eclipse J2EE Developer Tomcat6.0.13 Mysql 6.0
新建Dynamic Web Project
拷贝工程所需的jar包到WEB-INF/lib下
<!--[if gte vml 1]> <![endif]-->
数据库创建脚本
DROPTABLE context; CREATETABLE context ( id VARCHAR(32) NOTNULLPRIMARYKEY, title VARCHAR(100), times DATETIME, content VARCHAR(500), author VARCHAR(50), click INT, typeVARCHAR(50) ); DROPTABLEuser; CREATETABLEuser ( uid VARCHAR(50) NOTNULLPRIMARYKEY, uname VARCHAR(50), password VARCHAR(50) NOTNULL ); |
在web.xml中配置Struts2和Spring
<filter> <filter-name>Struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encodingFilter</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> |
项目中我使用的是Tomcat数据源配置如下,如果你不使用Tomcat数据源也可以在下面的配置文件中配置:
<Context docBase="news-SSH2" path="/news-SSH2" reloadable="true" source="org.eclipse.jst.jee.server:news-SSH2"> <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/news" password="1234" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/news?autoReconnect=true" username="root"/> </Context> |
也在在配置applicationContext.xml文件中配置数据源
<!-- 定义数据源Bean,使用C3P0数据源实现 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- 指定连接数据库的驱动 --> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <!-- 指定连接数据库的URL --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/news"/> <!-- 指定连接数据库的用户名 --> <property name="user" value="root"/> <!-- 指定连接数据库的密码 --> <property name="password" value="1234"/> <!-- 指定连接数据库连接池的最大连接数 --> <property name="maxPoolSize" value="20"/> <!-- 指定连接数据库连接池的最小连接数 --> <property name="minPoolSize" value="1"/> <!-- 指定连接数据库连接池的初始化连接数 --> <property name="initialPoolSize" value="1"/> <!-- 指定连接数据库连接池的连接的最大空闲时间 --> <property name="maxIdleTime" value="20"/> </bean> |
在applicationContext.xml中配置sessionFactory
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/news"></property> </bean> <!-- 管理Hibernate --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mappingResources"> <list> <value>org/bulktree/ssh2/news/vo/User.hbm.xml</value> <value>org/bulktree/ssh2/news/vo/News.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQLDialect </value> </property> </bean> |
3. 开始编码:
我们必须明确Spring框架的体系结构,新建以下几个包
<!--[if gte vml 1]> <![endif]-->
User.java
package org.bulktree.ssh2.news.vo; publicclass User { private String uid; private String uname; private String password; public String getUid() { returnuid; } Getter/setter’’’’’’’’’’’ publicvoid setPassword(String password) { this.password = password; } } |
在User类同包下即org.bulktree.ssh2.news.vo新建User.hbm.xml文件
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.bulktree.ssh2.news.vo"> <class name="User" table="user"> <id column="uid" name="uid" type="string"> <generator class="assigned"/> </id> <property column="uname" name="uname" type="string"/> 发表评论
最新评论
|
评论