ssh2的基于MVC的curd(带事务)

 

最近学习了struts2+spring+hibernate,写了基于MVC的CURD,在这里给新学struts2的朋友们一点小分享

第一步:添加strut2的包,

第二步:添加hibernate框架支持

第三步:添加spring框架支持

第四步:逆向表。

第五步:在web.xml中添加如下代码

 

<filter>
        
<filter-name>encodingFilter</filter-name>
        
<filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        
</filter-class>
        
<init-param>
            
<param-name>encoding</param-name>
            
<param-value>utf-8</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>encodingFilter</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>


    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        
</filter-class>
    
</filter>

    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>


    
<context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>
            /WEB-INF/classes/applicationContext.xml
        
</param-value>
    
</context-param>

    
<listener>
        
<listener-class>
            org.springframework.web.context.ContextLoaderListener
        
</listener-class>
    
</listener>

 

第六步: 修改applicationContext.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx
="http://www.springframework.org/schema/tx"
    xsi:schemaLocation
="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"
>
    
<bean id="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="configLocation" value="classpath:hibernate.cfg.xml">
        
</property>
    
</bean>

    
<!-- 配置事务管理器 -->
    
<bean id="transactionManager"
        class
="org.springframework.orm.hibernate3.HibernateTransactionManager">
        
<property name="sessionFactory">
            
<ref local="sessionFactory" />
        
</property>
    
</bean>

    
<!-- 配置事务特性 -->
    
<tx:advice id="txAdvice" transaction-manager="transactionManager">
        
<tx:attributes>
            
<tx:method name="*" propagation="REQUIRED" />
        
</tx:attributes>
    
</tx:advice>

    
<!-- 配置那些类的方法进行事务管理 -->
    
<aop:config>
        
<aop:pointcut id="allManagerMethod" expression="execution (* service.*.*(..))" />
        
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" />
    
</aop:config>

 

第七步:添加struts.xml文件

 

这样配置ssh2的操作就基本上到位了

下面开始编写代码

InsertUserinfo类的代码如下:

 

package controller;

import service.UserinfoService;


public class InsertUserinfo extends Base{
    
private String username;
    
private String password;
    
public String getUsername() {
        
return username;
    }


    
public void setUsername(String username) {
        
this.username = username;
    }


    
public String getPassword() {
        
return password;
    }

    
public void setPassword(String password) {
        
this.password = password;
    }

    
public String execute() {
        System.out.println(username);
        System.out.println(password);
        allService.getUserinfoService().insert(username, password);
        
return "toListDo";
    }
    
}

 DeleteUserinfo的代码如下:

 

package controller;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

public class DeleteUserinfo extends Base{
    
private String id;
    

    
public String getId() {
        
return id;
    }



    
public void setId(String id) {
        
this.id = id;
    }



    
public String execute() {
        allService.getUserinfoService().delete(id);
        
return "toListDo";
    }
    
}

 

UpdateUserinfo的代码如下:

 

package controller;

import orm.Userinfo;
import service.AllService;

public class UpdateUserinfo extends Base {
    
private String id ;
    
public String getId() {
        
return id;
    }


    
public void setId(String id) {
        
this.id = id;
    }

    
private Userinfo userinfo;

    
public Userinfo getUserinfo() {
        
return userinfo;
    }


    
public void setUserinfo(Userinfo userinfo) {
        
this.userinfo = userinfo;
    }

    
public String execute(){
        userinfo 
= allService.getUserinfoService().findById(id);
        
return "toSaveUpdateJSP";
    }

}

 

SaveUpdateUserinfo的代码如下:

 

package controller;

import orm.Userinfo;

public class SaveUpdateUserinfo extends Base{
    
private String id;
    
private String username;
    
private String password;
    
public String getId() {
        
return id;
    }

    
public void setId(String id) {
        
this.id = id;
    }

    
public String getUsername() {
        
return username;
    }

    
public void setUsername(String username) {
        
this.username = username;
    }

    
public String getPassword() {
        
return password;
    }

    
public void setPassword(String password) {
        
this.password = password;
    }

    
public String execute(){
        Userinfo userinfo 
= new Userinfo();
        userinfo.setId(Integer.parseInt(id));
        userinfo.setUsername(username);
        userinfo.setPassword(password);
        allService.getUserinfoService().saveUpdate(userinfo);
        
return "toListDo";
    }

}

 

ListUserinfo的代码如下:

 

package controller;

import java.util.ArrayList;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;


public class ListUserinfo extends Base {
    ArrayList listUserinfo;

    
public ArrayList getListUserinfo() {
        
return listUserinfo;
    }


    
public void setListUserinfo(ArrayList listUserinfo) {
        
this.listUserinfo = listUserinfo;
    }


    
public String execute() {
        listUserinfo
=allService.getUserinfoService().list();
        
return "toListJSP";
    }

}

 

service层的UserinfoService的代码如下

 

 

package service;

import java.util.ArrayList;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import orm.AllDAO;
import orm.Userinfo;

public class UserinfoService {
    
private AllDAO allDAO;

    
public AllDAO getAllDAO() {
        
return allDAO;
    }


    
public void setAllDAO(AllDAO allDAO) {
        
this.allDAO = allDAO;
    }


    
public void insert(String username, String password) {
        Userinfo userinfo 
= new Userinfo();
        userinfo.setUsername(username);
        userinfo.setPassword(password);
        allDAO.getUserinfoDAO().save(userinfo);
    }


    
public void delete(String id) {
        Userinfo userinfo 
= findById(id);
        allDAO.getUserinfoDAO().delete(userinfo);
    }


    
public ArrayList list() {
        ArrayList listUserinfo 
= (ArrayList) allDAO.getUserinfoDAO().findAll();
        
return listUserinfo;
    }

    
public Userinfo findById(String id ){
        Userinfo userinfo 
= allDAO.getUserinfoDAO().findById(Integer.parseInt(id));
        
return userinfo;
        
    }


    
public void update(String id ) {
        Userinfo userinfo 
= findById(id);
        allDAO.getUserinfoDAO().attachDirty(userinfo);
    }

    
public void saveUpdate(Userinfo userinfo){
        allDAO.getUserinfoDAO().attachDirty(userinfo);
    }

}

最后部署项目的时候记得删掉arm2.23的炸包。

 

主要代码如上。

想要详细代码的可以点击下载或留言

第一篇技术文章,希望大家多多支持

 

ssh2CURD下载

 

 

posted @ 2009-11-24 21:50  朱漪  阅读(1785)  评论(4编辑  收藏  举报