Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          使用Spring 的MVC+Hibernate的數據庫操作例子(轉)

          網上講Spring的資料很多,大部分實例都是針對Spring的某一部分做出的例子,如IoC,Aop,MVC,數據持久層等等,沒有一個完整的例子。

          這兩天根據夏昕的Spring開發指南,在加上自己參考其他資料,做出了一個利用Spring的MVC,加上Hibernate的網站的實例,包括Jsp界面表單的提交,Spring的 MVC控制,使用Spring提供的HibernateTemplate進行數據持久的完整例子.

          下面把程序的詳細代碼貼出來,由于自己也是初學,有不對的地方,還請過路的大俠指點一二。

          一、需求:表單填寫用戶ID,用戶名和地址,寫入數據庫

          二、具體實現。。。。  代碼見詳細內容


          網上講Spring的資料很多,大部分實例都是針對Spring的某一部分做出的例子,如Ioc,Aop,MVC,數據持久層等等,沒有一個完整的例子。

          這兩天根據夏昕的Spring開發指南,在加上自己參考其他資料,做出了一個利用Spring的MVC,加上Hibernate的網站的實例,包括Jsp界面表單的提交,Spring的 MVC控制,使用Spring提供的HibernateTemplate進行數據持久的完整例子.

          下面把程序的詳細代碼貼出來,自己也是初學,有不對的地方,還請過路的大俠指點一二。

          一、需求:表單填寫用戶ID,用戶名和地址,寫入數據庫

          二、具體實現

          1.UserInfoAdd.jsp

          填寫表單界面,輸入ID,Name,Address后提交到UserInfoAddAction.do



          UserID:Name:


          Address:
            


          2.UserInfoVO 

          表單的映射。 Value Object類,用來獲取表單提交的數據

           package com.kacakong.spring.vo;

          public class UserInfoVO {
           public String nid;
           public String name;
           public String address;
           public String getAddress() {
            return address;
           }

           public void setAddress(String address) {
            this.address = address;
           }

           public String getName() {
            return name;
           }

           public void setName(String name) {
            this.name = name;
           }

           public String getNid() {
            return nid;
           }
           

           public void setNid(String nid) {
            this.nid = nid;
           }
           

          }

           

          3.UserInfoAddAction

          Control類,根據Spring的配置文件,調用合適的接口,執行業務操作,控制頁面轉向。如果添加數據成功,就重定向到成功頁面,如果失敗,就裝到操作失敗頁面。具體調用的操作類,是根據Spring的配置文件來找的。使用的是接口操作,而不是實現類的操作。

          package com.kacakong.spring.action;

          import org.springframework.validation.BindException;
          import org.springframework.web.context.WebApplicationContext;
          import org.springframework.web.servlet.ModelAndView;
          import org.springframework.web.servlet.mvc.SimpleFormController;

          import com.kacakong.hibernate.dao.UserInfoDAO;
          import com.kacakong.hibernate.pojos.UserInfo;
          import com.kacakong.spring.vo.UserInfoVO;

          public class UserInfoAddAction extends SimpleFormController {
           
           private String fail_view;

           private String success_view;
           
           protected ModelAndView onSubmit(Object cmd, BindException ex)
             throws Exception {
            UserInfoVO vo = (UserInfoVO) cmd;
            
            UserInfo userinfo=new UserInfo();
            userinfo.setNid(Integer.valueOf(vo.getNid()));
            userinfo.setName(vo.getName());
            userinfo.setAddress(vo.getAddress());
            
            if (this.doAdd(userinfo)==1){
               return new ModelAndView(this.getSuccess_view());
            }else{
               return new ModelAndView(this.getFail_view());
            }
                
           }

           private int doAdd(UserInfo userinfo) { 
            WebApplicationContext  ctx=this.getWebApplicationContext();
            UserInfoDAO dao=(UserInfoDAO)ctx.getBean("UserInfoDAO");
            try{
             dao.save(userinfo);
             return 1;
            }catch(Exception e){   
             e.printStackTrace();
             return 0;
            }
           }
           
           public String getFail_view() {
            return fail_view;
           }

           public String getSuccess_view() {
            return success_view;
           }

           public void setFail_view(String string) {
            fail_view = string;
           }

           public void setSuccess_view(String string) {
            success_view = string;
           }

          }
           

          4.UserInfo

          PO類,數據model層的反映,與數據庫建立O/R mapping的映射

           package com.kacakong.hibernate.pojos;

          public class UserInfo {
           public Integer nid;
           public String name;
           public String address;
           public String getAddress() {
            return address;
           }
           
           public void setAddress(String address) {
            this.address = address;
           }
           
           public String getName() {
            return name;
           }
           
           public void setName(String name) {
            this.name = name;
           }

           public Integer getNid() {
            return nid;
           }
           

           public void setNid(Integer nid) {
            this.nid = nid;
           }
           


           

          5.UserInfo.hbm.xml

          PO的hibernate O/R mapping定義文件,這里的ID我設置成了assigned程序獲取

              "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
              "


             dynamic-update="false" dynamic-insert="false"
            select-before-update="false" optimistic-lock="version" >
            
                     
                 
               insert="true" access="property" column="name" length="50"
             not-null="true" />
               insert="true" access="property" column="address" length="50"
             not-null="true" />
           


           

          6.UserInfoDAO

          接口類,只定義了實現方法名稱

           package com.kacakong.hibernate.dao;

          import com.kacakong.hibernate.pojos.UserInfo;

          public interface UserInfoDAO {
            public abstract UserInfo get(Integer integer);
            public abstract void save(UserInfo userinfo);
          }

           

          7.UserInfoDAOImp

          UserInfoDAO接口的實現,繼承了HibernateDaoSupport

           package com.kacakong.hibernate.dao;

           

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

          import com.kacakong.hibernate.pojos.UserInfo;

          public class UserInfoDAOImp  extends HibernateDaoSupport implements UserInfoDAO {

           public UserInfo get(Integer id) {
            UserInfo userinfo=(UserInfo)this.getHibernateTemplate().get(UserInfo.class,id);
            return userinfo;
           }

           public void save(UserInfo userinfo) {
               this.getHibernateTemplate().save(userinfo);
           }

          }

           

          8.Web.xml的配置



             
            Dispatcher
            org.springframework.web.servlet.DispatcherServlet
            
             contextConfigLocation
             /WEB-INF/Config.xml /WEB-INF/Hibernate-Context.xml
            

           

           
            Dispatcher
            *.do
           

           
            index.jsp
           

           
            404
            /error.jsp
           


           

          9.Config.xml的定義


           "
           
             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            
             org.springframework.web.servlet.view.JstlView
            

            
             
            

            
             .jsp
            

           

           
             class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            
             
              UserInfoAddAction
             

            

           

           
             class="com.kacakong.spring.action.UserInfoAddAction">
            
             com.kacakong.spring.vo.UserInfoVO
            

            
             fail
            

            
             UserInfo
            

           


          10.Hibernate-Context.xml的定義


          "
           
            
             oracle.jdbc.driver.OracleDriver
            

            
             jdbc:oracle:thin:@192.168.100.8:1521:EASTPLUS
            

            
             spring
            

            
             spring
            

           


              com/kacakong/hibernate/pojos/UserInfo.hbm.xml

            

            
             
              net.sf.hibernate.dialect.SQLServerDialect 
              true
             

             
              PROPAGATION_REQUIRED
              PROPAGATION_REQUIRED,readOnly
             

          posted on 2006-02-23 19:27 都市淘沙者 閱讀(7032) 評論(3)  編輯  收藏 所屬分類: Spring+Struts+Hibernate

          評論

          # re: 使用Spring 的MVC+Hibernate的數據庫操作例子(轉) 2013-01-23 10:30 t

          ewr  回復  更多評論   

          # re: 使用Spring 的MVC+Hibernate的數據庫操作例子(轉)[未登錄] 2014-08-21 00:46 aa

          vvv  回復  更多評論   

          # re: 使用Spring 的MVC+Hibernate的數據庫操作例子(轉) 2014-12-05 13:52 企鵝王

          企鵝  回復  更多評論   

          主站蜘蛛池模板: 枣强县| 崇州市| 玉林市| 修文县| 莆田市| 称多县| 宝坻区| 万载县| 南丹县| 土默特左旗| 曲沃县| 灌阳县| 乌恰县| 哈密市| 江北区| 扶沟县| 台前县| 长海县| 沁水县| 澄江县| 商丘市| 常山县| 巴楚县| 南召县| 金山区| 景泰县| 阜平县| 简阳市| 吉林市| 涟源市| 台东市| 吉水县| 永胜县| 石景山区| 福清市| 兴海县| 张家港市| 兴业县| 延安市| 台中县| 碌曲县|