struts+spring+hibernate的web应用【1】

本文详细介绍了一个游戏产品管理系统的搭建过程,包括MySQL数据库的设计与创建、项目结构搭建、使用Struts、Spring和Hibernate进行分层开发等内容,并实现了基本的CRUD功能及前后端分页。
摘要由CSDN通过智能技术生成

第一步数据库部分(MySQL):

 

DROP DATABASE IF EXISTS game;

create database game DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

use game;

create table products( 
	
	game_id int primary key NOT NULL , 
	
	game_name_cn varchar (100) NOT NULL , 
	
	game_name_en varchar (100) NOT NULL , 
	
	game_capacity int NOT NULL , 
	
	game_version int NOT NULL , 
	
	game_media int NOT NULL , 
	
	game_copyright int NOT NULL , 
	
	game_price decimal(10, 2) , 
	
	game_content varchar (100) 
	
	) ENGINE=InnoDB;

 

 

第二部分:新建项目game

 

第三部分:新建目录结构(见相册),引入所需要的jar包(见相册)

 

 第四部分:目基本搭建完毕,开始写项目代码

 

 第五部分:在编码之前,我们需要先自行了解 strust,spring,hibernate 基础知识,后面的文章将不会过多的介绍这

                些框架的基础知识。整个项目由 Dao,Services,Web 三层组成, Dao 层主要通过 hibernate 来操作数

                据库, Service 层主要体现了业务,事务的处理, Web 层由 struts 来控制。整个项目的控制交由

                 spring 管理。

 

                现在的这个小项目除了完成基本的添删改查,还有一个简单的分页功能。这个分页功能不仅前台分页,

           而且在后台数据库也进行了分页处理。

 

第六部分:编写 Dao 层的代码

         

 

<? xml version="1.0" encoding="GB2312" ?> 
 <! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 
 
 < hibernate-mapping > 
      < class  name ="com.game.products.model.Products"  table ="products"   > 
          < id  name ="gameId"  type ="string" > 
             < column  name ="game_id"  length ="5"   /> 
             < generator  class ="assigned"   /> 
         </ id > 
         < property  name ="gameNameCn"  type ="string" > 
             < column  name ="game_name_cn"  length ="100"   /> 
         </ property > 
          < property  name ="gameNameEn"  type ="string" > 
             < column  name ="game_name_en"  length ="100"   /> 
         </ property > 
         < property  name ="gameCapacity"  type ="string" > 
             < column  name ="game_capacity"  length ="4"   /> 
         </ property > 
          < property  name ="gameVersion"  type ="string" > 
             < column  name ="game_version"  length ="4"   /> 
         </ property > 
           < property  name ="gameMedia"  type ="string" > 
             < column  name ="game_media"  length ="4"   /> 
         </ property > 
         < property  name ="gameCopyright"  type ="string" > 
             < column  name ="game_copyright"  length ="4"   /> 
         </ property > 
         < property  name ="gamePrice"  type ="string" > 
             < column  name ="game_price"  length ="4"   /> 
         </ property >  
          < property  name ="gameContent"  type ="string" > 
             < column  name ="game_content"  length ="100"   /> 
         </ property > 
      </ class > 
 </ hibernate-mapping > 

  

 

 

 package  com.game.products.model;

 public   class  Products   {
     //     Fields  
      private  String gameId; // 编号 
      private  String gameNameCn; // 中文名称 
      private  String gameNameEn; // 英文名称 
      private  String gameCapacity; // 碟数 
      private  String gameVersion; // 版本 
      private  String gameMedia; // 介质 
      private  String gameCopyright; // 版权 
      private  String gamePrice; // 价格 
      private  String gameContent; // 攻略
    
     //     Constructors 
       public  Products()  {} 
    
     //     Property accessors 
       public  String getGameCapacity()   {
         return  gameCapacity;
    } 
 
      public   void  setGameCapacity(String gameCapacity)   {
         this .gameCapacity  =  gameCapacity;
    } 
 
      public  String getGameId()   {
         return  gameId;
    } 
 
      public   void  setGameId(String gameId)   {
         this .gameId  =  gameId;
    } 
 
      public  String getGameNameCn()   {
         return  gameNameCn;
    } 
 
      public   void  setGameNameCn(String gameNameCn)   {
         this .gameNameCn  =  gameNameCn;
    } 
 
      public  String getGameNameEn()   {
         return  gameNameEn;
    } 
 
      public   void  setGameNameEn(String gameNameEn)   {
         this .gameNameEn  =  gameNameEn;
    } 
 
      public  String getGameVersion()   {
         return  gameVersion;
    } 
 
      public   void  setGameVersion(String gameVersion)   {
         this .gameVersion  =  gameVersion;
    } 
 
      public  String getGameMedia()   {
         return  gameMedia;
    } 
 
      public   void  setGameMedia(String gameMedia)   {
         this .gameMedia  =  gameMedia;
    } 
 
      public  String getGameCopyright()   {
         return  gameCopyright;
    } 
 
      public   void  setGameCopyright(String gameCopyright)   {
         this .gameCopyright  =  gameCopyright;
    } 
 
      public  String getGameContent()   {
         return  gameContent;
    } 
 
      public   void  setGameContent(String gameContent)   {
         this .gameContent  =  gameContent;
    } 
 
      public  String getGamePrice()   {
         return  gamePrice;
    } 
 
      public   void  setGamePrice(String gamePrice)   {
         this .gamePrice  =  gamePrice;
    } 
 
} 

 

 

          需要注意的是,我这里都是采用了 string 类型,因为在项目中传递数据,用 string 类型最为方便,同时

 

      也便于代码的编写。只是在前台需要编写验证代码,免得有字符数据插入整数字段而造成数据库异常。

 

 

 

  第八部分:在 com.game.products.dao.iface 包中新建ProductsDao接口。

 

 

package  com.game.products.dao.iface;

 import  java.util.List;

 import  com.game.products.model.Products;

 public   interface  ProductsDao   {
    List getProducts(); // 获得所有记录 
     List getProducts( int  pageSize,  int  startRow); // 获得一段记录 
      int  getRows(); // 获得总行数 
      int  getRows(String fieldname,String value); // 获得总行数 
     List queryProducts(String fieldname,String value); // 根据条件查询的所有记录 
     List queryProducts(String fieldname,String value, int  pageSize,  int  startRow); // 根据条件查询的一段记录 
     Products getProduct(String gameId); // 根据ID获得记录 
     String getMaxID(); // 获得最大ID值 
      void  addProduct(Products pd); // 添加记录 
      void  updateProductd(Products pd); // 修改记录 
      void  deleteProduct(Products pd); // 删除记录     
 } 
 

 

 

第七部分:注意这里的 ID 不是数据库自动生成的,而是根据需要由程序生成,一般项目中的主键 ID 都是采取这种方式。

 

          然后在这个包中再新建 Products 类,代码如下:

 

          首先写好 pojo 的代码: 在 com.game.products.model 中新建 products.hbm.xml 类,代码如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值