1.先建張表
用的是mysql數據庫..
文章表.
?
CREATE
???
TABLE
??`t_article`?(
??`a_id`??
int
?(?
11
?)??
NOT
???
NULL
??auto_increment,
??`a_sort`??
int
?(?
11
?)??
NOT
???
NULL
???
default
???
'
?0?
'
?,
??`a_title`??
varchar
?(?
50
?)??
default
???
NULL
?,
??`a_body`??
text
?,
??`a_author`??
varchar
?(?
11
?)??
default
???
''
?,
??`a_hit`??
int
?(?
11
?)??
NOT
???
NULL
???
default
???
'
?0?
'
?,
??`c_id`??
int
?(?
11
?)??
default
???
'
?0?
'
?,
??`a_date`??
varchar
?(?
20
?)??
default
???
NULL
?,
???
PRIMARY
???
KEY
???(`a_id`)
)??
2:寫vo
package
?firstspring.vo;

public
?
class
?articleVO?
{
????
private
?
int
?a_id;
????
private
?
int
?a_sort;
????
private
?
int
?a_hit;
????
private
?
int
?c_id;
????
private
?String?a_title;
????
private
?String?a_body;
????
private
?String?a_author;
????
private
?String?a_date;



????
public
?articleVO()?
{
????}
???
//
寫上get()?set()方法
3 寫VO映射文件
<?
xml?version="1.0"?encoding="UTF-8"
?>
<!
DOCTYPE?hibernate-mapping?PUBLIC
????"-//Hibernate/Hibernate?Mapping?DTD?2.0//EN"
????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>
<
hibernate-mapping
>
????
<
class?
name
="firstspring.vo.articleVO"
?table
="t_article"
?
>
????
<
id?
name
="a_id"
?column
="a_id"
?unsaved-value
="0"
?
>
??????
<
generator?
class
="native"
/>
?
</
id
>
?????
<
property?
name
="c_id"
????column
="c_id"
/>
?????
<
property?
name
="a_title"
?column
="a_title"
/>
?????
<
property?
name
="a_sort"
??column
="a_sort"
/>
?????
<
property?
name
="a_date"
??column
="a_date"
/>
?????
<
property?
name
="a_body"
??column
="a_body"
/>
?????
<
property?
name
="a_hit"
???column
="a_hit"
/>
?????
<
property?
name
="a_author"
?column
="a_author"
/>
???
??
</
class
>
</
hibernate-mapping
>
4: 寫dao層接口和bll層接口
? 4.1 dao層接口
package
?firstspring.idao;
import
?firstspring.vo.articleVO;

public
?
interface
?ArticleIdao?
{
????
????
void
?addArticle(articleVO?vo);?????????
}
4.2 bll層接口
package
?firstspring.idao;
import
?firstspring.vo.articleVO;

public
?
interface
?IArticleBLL?
{
?????
void
?addArticle(articleVO?vo);??
}
5:寫Articledao類
package
?firstspring.dao;
import
?org.springframework.orm.hibernate.support.HibernateDaoSupport;
import
?firstspring.idao.ArticleIdao;
import
?firstspring.vo.articleVO;

public
?
class
?ArticleDal?
extends
?HibernateDaoSupport?
implements
?ArticleIdao?
{

????
public
?ArticleDal()?
{
????}
????
public
?
void
?addArticle(articleVO?vo)

????
{
????????
this
.getHibernateTemplate().save(vo);
????????
this
.getHibernateTemplate().flush();
????????
????}
}
6.寫Articlebll類
package?firstspring.bll;
import?firstspring.idao.ArticleIdao;
import?firstspring.idao.IArticleBLL;
import?firstspring.vo.articleVO;


public?class?ArticleBll?implements?IArticleBLL?
{
???private?ArticleIdao?dal=null;

????public?ArticleBll()?
{
????}
????public?void?addArticle(articleVO?vo)

????
{
????????dal.addArticle(vo);
????}


????public?ArticleIdao?getDal()?
{
????????return?dal;
????}


????public?void?setDal(ArticleIdao?dal)?
{
????????this.dal?=?dal;
????}
}7:添加struts框架。
? 7.1 建個BaseAction類繼承Action
package?firstspring.struts;

import?org.apache.struts.action.*;
import?org.springframework.web.context.WebApplicationContext;
import?org.springframework.web.context.support.WebApplicationContextUtils;
import?javax.servlet.ServletContext;


public?abstract?class?BaseAction?extends?Action?
{
????
????private?WebApplicationContext?wac;

????public?BaseAction()?
{
????}
????public?void?setServlet(ActionServlet?actionServlet)

????
{
????????super.setServlet(actionServlet);
????????ServletContext?servletContext=actionServlet.getServletContext();
???????wac=WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
???????//wac.get
????}
????public?WebApplicationContext?getweb()

????
{
????????return?wac;
????}
??
}8:添加articleForm
package?firstspring.struts;

import?javax.servlet.*;
import?javax.servlet.http.*;

import?org.apache.commons.validator.*;
import?org.apache.struts.action.*;
import?org.apache.struts.validator.*;


public?class?articleForm?extends?ValidatorForm?
{
????private?String?a_auhor;
????private?String?a_body;
????private?String?a_date;
????private?Integer?a_hit;
????private?Integer?a_id;
????private?Integer?a_sort;
????private?String?a_title;
????private?Integer?c_id;


????public?String?getA_auhor()?
{
????????return?a_auhor;
????}


????public?void?setA_auhor(String?a_auhor)?
{
????????this.a_auhor?=?a_auhor;
????}


????public?void?setC_id(Integer?c_id)?
{
????????this.c_id?=?c_id;
????}


????public?void?setA_title(String?a_title)?
{
????????this.a_title?=?a_title;
????}


????public?void?setA_sort(Integer?a_sort)?
{
????????this.a_sort?=?a_sort;
????}


????public?void?setA_id(Integer?a_id)?
{
????????this.a_id?=?a_id;
????}


????public?void?setA_hit(Integer?a_hit)?
{
????????this.a_hit?=?a_hit;
????}


????public?void?setA_date(String?a_date)?
{
????????this.a_date?=?a_date;
????}


????public?void?setA_body(String?a_body)?
{
????????this.a_body?=?a_body;
????}


????public?String?getA_body()?
{
????????return?a_body;
????}


????public?String?getA_date()?
{
????????return?a_date;
????}


????public?Integer?getA_hit()?
{
????????return?a_hit;
????}


????public?Integer?getA_id()?
{
????????return?a_id;
????}


????public?Integer?getA_sort()?
{
????????return?a_sort;
????}


????public?String?getA_title()?
{
????????return?a_title;
????}


????public?Integer?getC_id()?
{
????????return?c_id;
????}

????public?ActionErrors?validate(ActionMapping?actionMapping,

?????????????????????????????????HttpServletRequest?httpServletRequest)?
{
????????ServletContext?application=this.getServlet().getServletContext();
????????ActionErrors?errors=new?ActionErrors();
????????String?validationKey=this.getValidationKey(actionMapping,httpServletRequest);
????????Validator?validator=Resources.initValidator(validationKey,this,application,httpServletRequest,errors,page);//String,Object,ServletContext,HttpServletRequest,ActionMessages,int
????????try

????????
{
????????????validatorResults=validator.validate();
????????}
????????catch(ValidatorException?e)

????????
{
????????????//log.error(e.getMessage(),e);
????????}
????????return?null?;

????}

????public?void?reset(ActionMapping?actionMapping,

??????????????????????HttpServletRequest?servletRequest)?
{
????}
}

9:添加ArticleAction繼承剛剛建的BaseAction
package?firstspring.struts;

import?org.apache.struts.action.ActionMapping;
import?org.apache.struts.action.ActionForm;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.struts.action.ActionForward;
import?firstspring.vo.articleVO;
import?firstspring.idao.IArticleBLL;


public?class?articleAction?extends?BaseAction?
{
????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,
?????????????????????????????????HttpServletRequest?request,
??????????????????????????HttpServletResponse?response)?{
????????????????????????????????//這里有幾個數據直接寫上了,沒有從前臺表單取。。?????
????????articleForm?f?=?(articleForm)?form;
????????articleVO?vo=new?articleVO();
????????vo.setA_author(f.getA_auhor());
????????vo.setA_body(f.getA_body());
????????vo.setA_hit(100);
????????vo.setA_date(f.getA_date());
????????vo.setA_sort(0);
????????vo.setC_id(1);
????????vo.setA_title(f.getA_title());
????????//IArticleBLL?
?????IArticleBLL?ibll=(IArticleBLL)this.getweb().getBean("articlebll");
?????ibll.addArticle(vo);
?????
???????return?null;
????}
}

好了。到這就快差不多了。。還有個重要的東西。寫個appcontext.xml配置文件。工廠就在這了。。
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"
????"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>


<bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource">
??<property?name="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property>
??<property?name="url"><value>jdbc:mysql://localhost:3306/wjcms</value></property>
??<property?name="username"><value>root</value></property>
??<property?name="password"><value>wujun</value></property>
</bean>


????<bean?id="sessionFactory"
????????class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

????????<property?name="dataSource">
????????????<ref?local="dataSource"/>
????????</property>


????????<property?name="mappingResources">
????????????<list>
????????????????<value>
????????????????????articleVO.hbm.xml
????????????????</value>
???????
????????????</list>
????????????
????????</property>

????????<property?name="hibernateProperties">
????????????<props>
????????????????<prop?key="hibernate.dialect">
????????????????????net.sf.hibernate.dialect.MySQLDialect
????????????????</prop>
????????????????<prop?key="hibernate.show_sql">
????????????????????true
????????????????</prop>
????????????</props>
????????</property>
????</bean>

????<bean?id="articledal"?class="firstspring.dao.ArticleDal">
???????<property?name="sessionFactory"><ref?local="sessionFactory"/></property>
????</bean>
????
????<bean?id="articlebll"?class="firstspring.bll.ArticleBll">
???????<property?name="dal"><ref?local="articledal"/></property>???
????</bean>
</beans>

建個jsp頁面。測試添加一條記錄看看。這是前臺的代碼。。
<html:form?action="/articleAction.do"?method="POST">
<html:text?property="a_auhor"/>
<br>
<html:text?property="a_body"/>
<br>
<html:text?property="a_date"/>
<br>
<br>
<br>
<br>
<html:text?property="a_title"/>
<br>
<br>
<html:submit?property="submit"?value="Submit"/><br>
<html:reset?value?="Reset"/>
</html:form>到這就快差不多了。還有一個小事情,在web.xml里記的加上一句
?<servlet>
????<servlet-name>context</servlet-name>
????<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
????<load-on-startup>1</load-on-startup>
??</servlet>好,運行一下。。OK 。數據進數據庫了。
專家多指點。。......