隨筆 - 4  文章 - 10  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          本示例是 Spring+Struts+Hibernate 整合來(lái)編寫(xiě)一個(gè)用戶注冊(cè)的簡(jiǎn)單示例 , 項(xiàng)目名稱為 mySSH, 示例中連接的數(shù)據(jù)庫(kù)為 MySQL, 使用前應(yīng)在 MySQL 中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) mySSH,mySSH 中創(chuàng)建數(shù)據(jù)庫(kù)表 user,SQL 語(yǔ)句如下 ,CREATE TABLE ‘user’(‘id’ VARCHAR(32)NOT MULL,’username’ VARCHAR(32) NOT NULL,’password’ VARCHAR(32) NOT NULL,PRIMARY KEY (‘id’))ENGINE=MYISAM; 示例的簡(jiǎn)單代碼如下 :

           

          < > mySSH/WEB-INF 目錄下編寫(xiě) web.xml

           

          <? xml version = "1.0" encoding = "UTF-8" ?>

          < web-app xmlns = "http://java.sun.com/xml/ns/j2ee"

          xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

          version = "2.4"

          xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee  

          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

           < servlet >

              < servlet-name > actionServlet </ servlet-name >

           < servlet-class > org.apache.struts.action.ActionServlet </ servlet-class >

              < init-param >

                < param-name > config </ param-name >

                < param-value > /WEB-INF/struts-config.xml </ param-value >

              </ init-param >

              < load-on-startup > 1 </ load-on-startup >

           </ servlet >

           < servlet-mapping >

              < servlet-name > actionServlet </ servlet-name >

              < url-pattern > *.do </ url-pattern >

           </ servlet-mapping >

          </ web-app >

           

          < > mySSH/WEB-INF/jsp 目錄下編寫(xiě)用戶注冊(cè)頁(yè)面 regedit.jsp

           

          <%@ page contentType = "text/html;charset=GBK" %>

          < html >

          < head >< title > Spring,Struts Hibernate 整合實(shí)例 </ title ></ head >

          <%

             String msg=request.getAttribute( "msg" )== null ? "" :(String)request.getAttribute( "msg" );

          %>

          < body > <%= msg %>

             < form action = "/mySSH/regedit.do" method = "post" >

                用戶名 : < input type = "text" name = "name" value = "${user.username }"/><br>

                密碼 : < input type = "password" name = "password" value = "" />< br >

                < input type = "submit" name = "method" value = " 提交 " />

             </ form >

          </ body >

          </ html >

           

          < > mySSH/WEB-INF/jsp 目錄下編寫(xiě)用戶注冊(cè)成功頁(yè)面 success.jsp

           

          <%@ page contentType = "text/html;charset=GBK" %>

          < html >

          < head >< title > Spring,Struts Hibernate 整合實(shí)例 </ title ></ head >

          < body >

              提交成功 : 你輸入的用戶名是 :${user.name }, 密碼是 :${user.password }

          </ body >

          </ html >

           

          < > com.gc.vo 包下編寫(xiě) POJO---User.java

           

          package com.gc.vo;

          public class User {

              private String id ;

              private String username ;

              private String password ;

              public User(String username,String password){

                 this . username =username;

                 this . password =password;

              }

              public User(){

                

              }

              public String getId() {

                 return id ;

              }

              public void setId(String id) {

                 this . id = id;

              }

              public String getPassword() {

                 return password ;

              }

              public void setPassword(String password) {

                 this . password = password;

              }

              public String getUsername() {

                 return username ;

              }

              public void setUsername(String username) {

                 this . username = username;

              }  

          }

           

          < > com.gc.vo 包下編寫(xiě)映射文件 User.hbm.xml

           

          <? 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 = "com.gc.vo.User" table = "user" >

                < id name = "id" type = "java.lang.String" >

                  < generator class = "uuid.hex" ></ generator >

                </ id >

                < property name = "username"

                          type = "java.lang.String"

                          column = "username"

                          not-null = "true"

                          length = "32" >

                </ property >

                < property name = "password"

                          type = "java.lang.String"

                          column = "password"

                          not-null = "true"

                          length = "32" >

                </ property >

             </ class >

          </ hibernate-mapping >

           

          < > com.gc.dao 包下編寫(xiě)接口類 UserDAO.java

           

          package com.gc.dao;

          import com.gc.vo.*;

          public interface UserDAO {

              // 新增用戶

              public abstract void createUser(User user);

              // 修改用戶

              public abstract void updateUser(User user);

              // 刪除用戶

              public abstract void deleteUser(User user);

              // 查詢用戶

              public abstract User queryUser(String name);

          }

           

          < > com.gc.dao.impl 包下編寫(xiě)接口類 UserDAO 的實(shí)現(xiàn)類 UserDAOImpl.java

           

          package com.gc.dao.impl;

          import com.gc.dao.UserDAO;

          import com.gc.vo.User;

          import java.util.ArrayList;

          import java.util.List;

          import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

          import org.springframework.orm.toplink.SessionFactory;

          public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{

              // 依賴注入 SessionFactory

              private SessionFactory sessionFactory ;

              // 定義查詢 SQL 語(yǔ)氣

              private String SQL = "from user u where u.username=?" ;

              // 新增用戶

              public void createUser(User user){

                 this .getHibernateTemplate().save(user);

              }

              // 修改用戶

              public void updateUser(User user){

                 this .getHibernateTemplate().update(user);

              }

              // 刪除用戶

              public void deleteUser(User user){

                 this .getHibernateTemplate().delete(user);

              }

              // 查詢用戶

              public User queryUser(String name){

                 List userList;

                 if ( this .getHibernateTemplate().find( SQL , name)== null )

                     userList= new ArrayList();

                 else

                     userList= this .getHibernateTemplate().find( SQL , name);

                 return (User)userList.get(0);

              }

          }

           

          < > mySSH/WEB-INF 目錄下編寫(xiě) Struts 的配置文件 struts-config.xml

           

          <? xml version = "1.0" encoding = "UTF-8" ?>

          <! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

          "http://struts.apache.org/dtds/struts-config_1_2.dtd" >

          < struts-config >

           <!-- 定義 formBean -->

           < form-beans >

              < form-bean name = "user" type = "com.gc.vo.User" />

           </ form-beans >

           < action-mappings >

               < action path = "/regedit" type = "org.springframework.web.struts.DelegatingActionProxy" name = "user" >

                   < forward name = "success" path = "WEB-INF/jsp/success.jsp" ></ forward >

                  < forward name = "input" path = "WEB-INF/jsp/regedit.jsp" ></ forward >

               </ action >

               < action path = "/input" type = "org.apache.struts.actions.ForwardAction"

                       parameter = "/WEB-INF/jsp/regedit.jsp" >

               </ action >

           </ action-mappings >

           <!-- 注冊(cè) Struts 插件 , Spring 相結(jié)合 -->

           < plug-in className = "org.springframework.web.struts.ContextLoaderPlugIn" >

               < set-property property = "contextConfigLocation" value = "/WEB-INF/config.xml" />

              </ plug-in >

          </ struts-config >

           

          < > mySSH/WEB-INF 目錄下編寫(xiě) Spring 的配置文件 config.xml

           

          <? xml version = "1.0" encoding = "UTF-8" ?>

          <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

            "http://www.springframework.org/dtd/sring-beans.dtd" >

          < beans >

           < bean id = "regedit" class = "com.gc.service.impl.RegeditImpl" >

               < property name = "userDAO" >

                  < ref local = "userDAO" />

               </ property >

           </ bean >

           < bean name = "/regedit" class = "com.gc.action.RegeditAction" >

                < property name = "regedit" >

                   < ref bean = "regedit" />

                </ property >

           </ bean >

           < bean name = "/input" class = "com.gc.action.RegeditAction" >

               < property name = "regedit" >

                  < ref bean = "regedit" />

               </ property >

           </ bean >

           <!-- 定義數(shù)據(jù)源 -->

           < bean id = "dataSource"

               class = "org.apache.commons.dbcp.BasicDataSource"

               destroy-method = "close" >

               <!-- 設(shè)定驅(qū)動(dòng) -->

               < property name = "driverClassName" >

                  < value > com.mysql.jdbc.Driver </ value >

               </ property >

               <!-- 設(shè)定 URL -->

               < property name = "url" >

                  < value > jdbc:mysql://localhost:3306/mySSH </ value >

               </ property >

               <!-- 設(shè)定用戶名 -->

               < property name = "username" >

                  < value > tang </ value >

               </ property >

               <!-- 設(shè)定密碼 -->

               < property name = "password" >

                  < value > admin </ value >

               </ property >  

           </ bean >

           <!-- Hibernate 聯(lián)系起來(lái) -->

           < bean id = "sessionFactory"

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

               < property name = "dataSource" >

                  < ref bean = "dataSource" />

               </ property >

               < property name = "mappingResources" >

                  < list >

                     < value > com\gc\vo\User.hbm.xml </ value >

                  </ list >

               </ property >

               < property name = "hibernateProperties" >

                  < props >

                     < prop key = "hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >

                     < prop key = "hibernate.show_sql" > true </ prop >

                   </ props >

               </ property >

           </ bean >

           <!-- 進(jìn)行事務(wù)處理 -->

           < bean id = "transactionManager"

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

               < property name = "sessionFactory" >

                  < ref bean = "sessionFactory" />

               </ property >

           </ bean >

           <!-- 進(jìn)行事務(wù)代理 -->

           < bean id = "userDAOProxy"

               class = "org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >

               < property name = "transactionManager" >

                  < ref bean = "transactionManager" />

               </ property >

               < property name = "target" >

                  < ref local = "userDAO" />

               </ property >

           </ bean >

           < bean id = "userDAO" class = "com.gc.dao.impl.UserDAOImpl" >

               < property name = "sessionFactory" >

                  < ref bean = "sessionFactory" />

               </ property >

           </ bean >

          </ beans >

           

          < > com.gc.action 包下編寫(xiě)控制器 RegeditAction.java

           

          package com.gc.action;

          import com.gc.vo.User;

          import com.gc.service.Regedit;

          import javax.servlet.http.HttpServletRequest;

          import javax.servlet.http.HttpServletResponse;

          import org.apache.struts.action.Action;

          import org.apache.struts.action.ActionForm;

          import org.apache.struts.action.ActionForward;

          import org.apache.struts.action.ActionMapping;

          public class RegeditAction extends Action{

              private Regedit regedit ;

              // 依賴注入

              public Regedit getRegedit() {

                 return regedit ;

              }

              public void setRegedit(Regedit regedit) {

                 this . regedit = regedit;

              }

              public ActionForward execute(ActionMapping mapping,

                     ActionForm form,HttpServletRequest request,

                     HttpServletResponse response) throws Exception{

                 // 保存頁(yè)面提交的用戶信息

                 getRegedit().saveUser((User)form);

                 request.setAttribute( "user" ,(User)form);

                 return mapping.findForward( "success" );

              }

          }

           

          < 十一 > com.gc.service 包下編寫(xiě)業(yè)務(wù)邏輯接口 Regedit.java

           

          package com.gc.service;

          import com.gc.vo.User;

          public interface Regedit {

              // 保存用戶

              public abstract void saveUser(User user);

          }

           

          < 十二 > com.gc.service 包下編寫(xiě)具體的業(yè)務(wù)邏輯類 RegeditImpl.java

           

          package com.gc.service.impl;

          import com.gc.dao.UserDAO;

          import com.gc.service.Regedit;

          import com.gc.vo.User;

          public class RegeditImpl implements Regedit{

              private UserDAO userDao ;

              // 保存用戶

              public void saveUser(User user){

                 userDao .createUser(user);

              }

              // 修改用戶

              public void updateUser(User user){

                 userDao .updateUser(user);

              }

              // 修改用戶

              public void deleteUser(User user){

                 userDao .deleteUser(user);

              }

              // 查詢用戶

              public User queryUser(String username){

                 return userDao .queryUser(username);

              }

              // 依賴注入

              public UserDAO getUserDao() {

                 return userDao ;

              }

              public void setUserDao(UserDAO userDao) {

                 this . userDao = userDao;

              }

          }

           

          posted on 2007-08-21 10:28 冬天出走的豬 閱讀(495) 評(píng)論(0)  編輯  收藏 所屬分類: j2ee
          主站蜘蛛池模板: 郑州市| 名山县| 巴林右旗| 杭锦后旗| 天水市| 成武县| 唐山市| 永平县| 松潘县| 聂拉木县| 常熟市| 广德县| 霞浦县| 抚顺县| 湖南省| 浙江省| 安达市| 张家口市| 房山区| 九龙坡区| 湖南省| 鞍山市| 揭东县| 扎赉特旗| 泸州市| 余江县| 师宗县| 开原市| 电白县| 玉树县| 鹤岗市| 龙南县| 建始县| 金阳县| 图们市| 乳山市| 天长市| 大安市| 丰台区| 台中市| 米脂县|