`
primer_2004
  • 浏览: 128027 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts+spring+hibernate的web应用(2.1)

    博客分类:
  • Java
阅读更多

 Dao层代码编写:

整个项目由 Dao、Services、Web 三层组成, Dao 层主要通过 hibernate 来操作数据库, Service 层主要体现了业务、事务的处理, Web 层由 struts 来控制。整个项目的控制交由 spring 管理。

现在的这个小项目除了完成基本的添删改查,还有一个简单的分页功能。这个分页功能不仅前台分页,而且在后台数据库也进行了分页处理。
 
首先写好 pojo 的代码:
 
    在 com.game.products.model 中新建 products.hbm.xml 类,代码如下:
xm
  1. < hibernate-mapping >    
  2.          < class  name ="com.game.products.model.Products"  table ="products"   >    
  3.                    < id  name ="gameId"  type ="string" >    
  4.                          < column  name ="game_id"  length ="5"   />    
  5.                          < generator  class ="assigned"   />    
  6.                    </id>  
  7.                    < property  name ="gameNameCn"  type ="string" >    
  8.                           < column  name ="game_name_cn"  length ="100"   />    
  9.                    < /property  >  
  10.                    < property  name ="gameNameEn"  type ="string" >    
  11.                           < column  name ="game_name_en"  length ="100"   />    
  12.                    < /property  >  
  13.                    < property  name ="gameCapacity"  type ="string" >    
  14.                           < column  name ="game_capacity"  length ="4"   />    
  15.                    < /property  >  
  16.                    < property  name ="gameVersion"  type ="string" >    
  17.                            < column  name ="game_version"  length ="4"   />    
  18.                     < /property  >  
  19.                     < property  name ="gameMedia"  type ="string" >    
  20.                            < column  name ="game_media"  length ="4"   />    
  21.                     < /property  >  
  22.                     < property  name ="gameCopyright"  type ="string" >    
  23.                            < column  name ="game_copyright"  length ="4"   />    
  24.                    < /property  >  
  25.                    < property  name ="gamePrice"  type ="string" >    
  26.                             < column  name ="game_price"  length ="4"   />    
  27.                    < /property  >  
  28.                    < property  name ="gameContent"  type ="string" >    
  29.                              < column  name ="game_content"  length ="100"   />    
  30.                    < /property  >  
  31.           < /class  >  
  32. < /hibernate-mapping >   

注意这里的 ID 不是数据库自动生成的,而是根据需要由程序生成,一般项目中的主键 ID 都是采取这种方式。
然后在这个包中再新建 Products 类,代码如下:
  1. package  com.game.products.model;   
  2.      public   class  Products   {   
  3.      // Fields     
  4.       private  String gameId; // 编号    
  5.       private  String gameNameCn; // 中文名称    
  6.       private  String gameNameEn; // 英文名称    
  7.       private  String gameCapacity; // 碟数    
  8.       private  String gameVersion; // 版本    
  9.       private  String gameMedia; // 介质    
  10.       private  String gameCopyright; // 版权    
  11.       private  String gamePrice; // 价格    
  12.       private  String gameContent; // 攻略   
  13.        
  14.      // Constructors    
  15.        public  Products()  {}    
  16.        
  17.      //  Property accessors    
  18.        public  String getGameCapacity()   {   
  19.          return  gameCapacity;   
  20.     }    
  21.     
  22.       public   void  setGameCapacity(String gameCapacity)   {   
  23.          this .gameCapacity  =  gameCapacity;   
  24.     }    
  25.     
  26.       public  String getGameId()   {   
  27.          return  gameId;   
  28.     }    
  29.     
  30.       public   void  setGameId(String gameId)   {   
  31.          this .gameId  =  gameId;   
  32.     }    
  33.     
  34.       public  String getGameNameCn()   {   
  35.          return  gameNameCn;   
  36.     }    
  37.     
  38.       public   void  setGameNameCn(String gameNameCn)   {   
  39.          this .gameNameCn  =  gameNameCn;   
  40.     }    
  41.     
  42.       public  String getGameNameEn()   {   
  43.          return  gameNameEn;   
  44.     }    
  45.     
  46.       public   void  setGameNameEn(String gameNameEn)   {   
  47.          this .gameNameEn  =  gameNameEn;   
  48.     }    
  49.     
  50.       public  String getGameVersion()   {   
  51.          return  gameVersion;   
  52.     }    
  53.     
  54.       public   void  setGameVersion(String gameVersion)   {   
  55.          this .gameVersion  =  gameVersion;   
  56.     }    
  57.     
  58.       public  String getGameMedia()   {   
  59.          return  gameMedia;   
  60.     }    
  61.     
  62.       public   void  setGameMedia(String gameMedia)   {   
  63.          this .gameMedia  =  gameMedia;   
  64.     }    
  65.     
  66.       public  String getGameCopyright()   {   
  67.          return  gameCopyright;   
  68.     }    
  69.     
  70.       public   void  setGameCopyright(String gameCopyright)   {   
  71.          this .gameCopyright  =  gameCopyright;   
  72.     }    
  73.     
  74.       public  String getGameContent()   {   
  75.          return  gameContent;   
  76.     }    
  77.     
  78.       public   void  setGameContent(String gameContent)   {   
  79.          this .gameContent  =  gameContent;   
  80.     }    
  81.     
  82.       public  String getGamePrice()   {   
  83.          return  gamePrice;   
  84.     }    
  85.     
  86.       public   void  setGamePrice(String gamePrice)   {   
  87.          this .gamePrice  =  gamePrice;   
  88.     }    
  89.   
  90. }   
 
需要注意的是,我这里都是采用了 String 类型,因为在项目中传递数据,用 String  类型最为方便,同时也便于代码的编写。只是在前台需要编写验证代码,免得有字符数据插入整数字段而造成数据库异常。
在 com.game.products.dao.iface 包中新建ProductsDao接口。代码如下所示:
 
  1. package  com.game.products.dao.iface;   
  2. import  java.util.List;   
  3. import  com.game.products.model.Products;   
  4. public   interface  ProductsDao   {   
  5.      List getProducts(); // 获得所有记录    
  6.      List getProducts( int  pageSize,  int  startRow); // 获得一段记录    
  7.      int  getRows(); // 获得总行数    
  8.      int  getRows(String fieldname,String value); // 获得总行数    
  9.      List queryProducts(String fieldname,String value); // 根据条件查询的所有记录    
  10.      List queryProducts(String fieldname,String value, int  pageSize, int startRow); //根据条件查询的一段记录
         
    Products getProduct(String gameId); // 根据ID获得记录    
  11.      String getMaxID(); // 获得最大ID值    
  12.      void  addProduct(Products pd); // 添加记录    
  13.      void  updateProductd(Products pd); // 修改记录    
  14.      void  deleteProduct(Products pd); // 删除记录        
  15.  }   

在com.game.products.dao.hibernate包中新建继承HibernateDaoSupport的ProductsMapDao类,并实现了ProductsDao接口。 代码如下:
  1. package  com.game.products.dao.hibernate;   
  2.   
  3.  import  java.sql.SQLException;   
  4.  import  java.util.Iterator;   
  5.  import  java.util.List;   
  6.   
  7.  import  org.hibernate.HibernateException;   
  8.  import  org.hibernate.Query;   
  9.  import  org.hibernate.Session;   
  10.  import  org.springframework.orm.hibernate3.HibernateCallback;   
  11.  import  org.springframework.orm.hibernate3.support.HibernateDaoSupport;   
  12.   
  13.  import  com.game.products.dao.iface.ProductsDao;   
  14.  import  com.game.products.model.Products;   
  15.   
  16.   
  17.  /** */ /**    
  18.  *  @author  cwf   
  19.  *   
  20.   */    
  21.  public class ProductsMapDao  extends  HibernateDaoSupport implements ProductsDao {   
  22.   
  23.      public  ProductsMapDao()  {}    
  24.     
  25.       /** */ /**    
  26.      * 函数说明:添加信息   
  27.      * 参数说明:对象    
  28.      * 返回值:   
  29.       */    
  30.       public   void  addProduct(Products pd)   {   
  31.          this .getHibernateTemplate().save(pd);   
  32.     }    
  33.     
  34.       /** */ /**    
  35.      * 函数说明:删除信息   
  36.      * 参数说明: 对象   
  37.      * 返回值:   
  38.       */    
  39.       public   void  deleteProduct(Products pd)   {   
  40.          this .getHibernateTemplate().delete(pd);   
  41.     }    
  42.     
  43.       /** */ /**    
  44.      * 函数说明:获得所有的信息   
  45.      * 参数说明:    
  46.      * 返回值:信息的集合   
  47.       */    
  48.       public  List getProducts()   {   
  49.         String sql = " FROM Products ORDER BY gameNameCn " ;   
  50.          return   this .getHibernateTemplate().find(sql);   
  51.     }    
  52.        
  53.      /** */ /**    
  54.      * 函数说明:获得总行数   
  55.      * 参数说明:    
  56.      * 返回值:总行数   
  57.       */    
  58.       public   int  getRows()   {   
  59.         String sql = " FROM Products ORDER BY gameNameCn " ;   
  60.         List list = this .getHibernateTemplate().find(sql);   
  61.          return  list.size();   
  62.     }    
分享到:
评论

相关推荐

    Myeclipse8.5下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3

    本文将详细介绍如何在MyEclipse 8.5环境下搭建基于Struts2.1、Spring3.0以及Hibernate3.3的SSH框架,并通过图解的方式引导读者完成整个搭建过程。 #### 二、创建 Web 项目 首先,需要在MyEclipse 8.5中创建一个新...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    总的来说,Struts2.1、Spring2.5和Hibernate3.3的整合为开发者提供了一个强大的开发平台,可以高效地构建复杂的Java Web应用。尽管现代框架如Spring Boot已逐渐取代这种传统的整合方式,但对于理解企业级开发的底层...

    搭建Struts2.1+Spring3.0+Hibernate3.3框架

    搭建Struts2.1+Spring3.0+Hibernate3.3框架是开发Java Web应用程序时常见的一种技术组合,也被称为SSH框架。这三个框架分别负责不同的职责:Struts2处理前端控制器,Spring提供依赖注入和事务管理,Hibernate则作为...

    struts2.1 + spring 2.5 + hibernate 3.2 增删改查

    Struts2.1、Spring 2.5 和 Hibernate 3.2 是经典的Java Web开发框架组合,用于构建高效、可维护的企业级应用。这个详细例子将深入探讨如何使用这三个框架协同工作,实现数据库的增(Add)、删(Delete)、改(Modify...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12

    根据提供的标题、描述以及部分内容,本文将详细解析与MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12相关的技术栈及其应用。这些技术在企业级开发中非常常见,能够帮助开发者构建高效...

    Struts2+Spring4+Hibernate5整合

    Struts2、Spring4和Hibernate5是Java Web开发中的三个重要框架,它们分别负责MVC模式中的动作控制、依赖注入和持久化管理。这三者的整合可以构建出高效、稳定且易于维护的企业级应用。 **Struts2** 是一个基于MVC...

    struts2.1+spring3.0+hibernate3.3整合小例子

    ### Struts2.1 + Spring3.0 + Hibernate3.3 整合示例解析 #### 一、项目概述 本篇文章将详细解读一个基于Struts2.1、Spring3.0以及Hibernate3.3的整合项目案例。该案例不仅展示了如何搭建这样一个集成环境,还特别...

    Struts+Spring+Hibernate 整合教程.pdf

    ### Struts+Spring+Hibernate 整合教程知识点详解 #### 一、SSH整合理念与背景 **1.1 框架概述** 在构建复杂的Web应用程序时,开发人员需要面对诸多挑战,包括如何构建用户界面(UI)、业务逻辑(BL)的存放位置以及...

    SSH整合 Struts2.1+Spring4.1+Hibernate4.1

    这个“SSH整合 Struts2.1+Spring4.1+Hibernate4.1”是一个预配置的框架模板,适用于快速开发J2EE项目,特别是对于那些需要管理业务逻辑和持久层操作的复杂应用。 Struts2是MVC(模型-视图-控制器)架构的扩展,提供...

    Struts2.1+Spring2+Hibernate3.3整合

    总的来说,Struts2.1+Spring2+Hibernate3.3的整合是构建复杂Java Web应用的有效途径,但同时也需要开发者具备扎实的框架知识和良好的项目管理能力。随着技术的发展,现代Web应用可能倾向于使用Spring Boot等更现代化...

    struts2.3.16+spring4.0.2+hibernate4.2.4整合所需札包

    Struts2.3.16、Spring4.0.2和Hibernate4.2.4是三个非常关键的Java企业级开发框架,它们分别用于处理Web层、服务层和持久层的逻辑。这个整合的"struts2.3.16+spring4.0.2+hibernate4.2.4整合所需札包"提供了这三个...

    struts + hibernate + spring demo

    Struts、Hibernate和Spring是Java开发中的三大框架,它们各自负责不同的职责,组合起来可以构建出高效、松耦合的企业级应用。这个"Struts + Hibernate + Spring demo"是一个示例项目,展示了这三个框架如何协同工作...

    MyEclipse8.6+Struts2.1+Spring3.0+Hibernate3.3环境搭建.doc

    本文档主要介绍了如何在MyEclipse 8.6环境中搭建一个基于Struts2.1、Spring3.0和Hibernate3.3的Java Web应用开发环境。以下是各个部分的详细说明: 1. 创建Web Project项目 在MyEclipse中创建Web Project是开始...

    struts2.5.0+spring4.1.6+hibernate4.2jar包

    通过这样的整合,开发者可以利用Struts2的强大控制层,Spring的灵活服务层,以及Hibernate的高效数据访问层,构建出高效、稳定的Java Web应用程序。这个压缩包提供的jar文件正是为了支持这样的开发环境,简化了项目...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    struts2.1+spring2.5+hibernate3.3简单登录案例

    Struts2.1+Spring2.5+Hibernate3.3是一个经典的Java Web开发技术栈,它们结合使用可以构建高效、可扩展的企业级应用程序。在这个简单的登录案例中,我们将深入理解这三个框架如何协同工作来实现用户身份验证。 ...

    struts2.1+spring2.5+hibernate3.2项目基本jar包

    这个“struts2.1+spring2.5+hibernate3.2项目基本jar包”集合了这三个框架的核心库,为开发者提供了便捷的开发环境。 **Struts2** 是一个基于MVC设计模式的Web应用程序框架,主要用于控制应用程序的流程。Struts2.1...

    struts2.1+spring3.0+hibernate3.3整合

    ### Struts2.1 + Spring3.0 + Hibernate3.3 ...综上所述,通过细致地配置Struts2、Spring与Hibernate之间的关系,可以有效地构建出高效稳定的Java Web应用系统。这不仅有助于提升开发效率,还能更好地满足项目的需求。

Global site tag (gtag.js) - Google Analytics