`

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

    博客分类:
  • ssh
阅读更多

第一步数据库部分(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 类,代码如下:

 

分享到:
评论

相关推荐

    五子棋wuziq.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    单片机C语言Proteus仿真实例占空比可调模拟仿真程序

    单片机C语言Proteus仿真实例占空比可调模拟仿真程序提取方式是百度网盘分享地址

    单片机C语言Proteus仿真实例用数码管设计的可调式电子钟

    单片机C语言Proteus仿真实例用数码管设计的可调式电子钟提取方式是百度网盘分享地址

    2023年第16届中国大学生计算机设计大赛附往届获奖作品合集资料

    2023年第16届中国大学生计算机设计大赛附往届获奖作品合集资料提取方式是百度网盘分享地址

    Linux下,C语言实现五子棋程序Linux-Wuziqi.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    需要系数法负荷计算软件.zip

    需要系数法负荷计算软件

    变压器差动计算软件.zip

    变压器差动计算软件

    单片机C语言Proteus仿真实例数码管动态显示

    单片机C语言Proteus仿真实例数码管动态显示提取方式是百度网盘分享地址

    Python源码-小海龟之螺旋曲线.py

    Python源码-小海龟之螺旋曲线

    Python源码-图形验证码考眼力游戏.py

    Python源码-图形验证码考眼力游戏

    飞机大战项目planegame.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    架空送电线路导地线弧垂计算小软件.zip

    架空送电线路导地线弧垂计算小软件

    W25Q512数据手册

    W25Q512数据手册。The W25Q512JV (512M-bit) Serial Flash memory provides a storage solution for systems with limited space, pins and power. The 25Q series offers flexibility and performance well beyond ordinary Serial Flash devices. They are ideal for code shadowing to RAM, executing code directly from Dual/Quad SPI (XIP) and storing voice, text and data. The device operates on a single 2.7V to 3.6V power supply with current consumption as low as 1µA for power-down. All devices are offered in space-

    three.js应用篇(五)模型内第一视角漫游

    完整示例代码

    setuptools-1.3.1.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    单片机C语言Proteus仿真实例数码管显示4×4键盘矩阵按键

    单片机C语言Proteus仿真实例数码管显示4×4键盘矩阵按键提取方式是百度网盘分享地址

    setuptools-46.3.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    bloom filter , 递归 , 回溯 , 五子棋 , 迷宫 , 扫雷 , 贪吃蛇 , 消字 , 各种数据结构算法.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    附件1:证券公司及基金管理公司子公司资产证券化业务管理规定(修订稿).pdf

    附件1:证券公司及基金管理公司子公司资产证券化业务管理规定(修订稿).pdf

    信息可视化类广东省大学生计算机设计大赛三等奖追溯党史数看百年历程视频

    信息可视化类广东省大学生计算机设计大赛三等奖追溯党史数看百年历程视频提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics