目錄
#專案架構的建構" >2.#專案架構的建構
首頁 Java java教程 分享一個易買網項目的實例教程

分享一個易買網項目的實例教程

Jun 25, 2017 pm 01:30 PM
實現 目的 詳解

                             

0.開發流程:

1.項目約定:

   6群組:

小組專案名稱:EasyBuy_flc(EasyBuy_01)

小組資料庫名稱:EasyBuy_flc

版本控制工具:svn,不再使用

將來可以將自己小組的專案上傳到git

 

開發流程控制:     

組長:所有的html

頁改為

jsp#html

##      A

組員:設計資料庫,書寫資料表中文欄位名稱

      B組員:設計實體類別

專案開發步驟

1.

資料庫設計

 

  easybuy_user(使用者表)   1

  EU_USER_ID varchar    ##  EU_USER_NAME varchar     

真實姓名

  EU_PASSWORD varchar                 性別(

T,F)

  EU_BIRTHDAY date            EU_EMAIL varchar         

電子郵件

====================== ======================================

   easybuy_product_category (商品分類表)  

#2

 EPC_ID        

EPC_ID       

 EPC_NAME              

#N對

 

EPC_PARENT_#N

 EPC_PARENT_f=c_

================================easybuy_product

(商品表)

 表格3

   EP_ID            商品編號

###   EP_NAME #  #####

   EP_PRICE         商品價格

   EP_STOCK        #目前商品所屬分類的父分類編號

#   EPC_CHILD_ID     

#目前商品所屬分類

   EP_FILE_NAME     

商品圖片名稱#====== ====================================================

 

easybuy_order

(訂單表)

4

##T 

##EO_ID          

EO_ID          ## ##'訂單編號

 

EO_USER_ID       命令所屬使用者

 

EO_USER_NAME   ## 

##EO_USER_NAME   

## 

##EO_USER_NAME  

 

EO_USER_ADDRESS  

訂單外送地址

 

##EO_CREATE_TIME   

EO_COST          

本單金額

 

#EO_STATUS      

EO_TYPE          

#訂單類型

(本項目未啟用)

=================== ====================================

 

easybuy_order_detail 

(訂單詳情表)

表格5 

   EOD_ID          

訂購詳情編號

#白

#白

#白白編號

#'c感染

##EO_ID           

#訂單編號

 

EP_ID          #商品數量

 EOD_COST        

單商品金額

================= ===============================================

 easybuy_news (新聞表)   

#6

## 

   EN_ID      ##   EN_ID      

##   EN_ID     

 

   EN_TITLE        已參考標題

## 

   EN_CONTENT      "新聞內容

 

   EN_CREATE_TIME   ====

==== ============================================

 

easybuy_comment (評論表)  表7

 

EC_ID            

註解編號       

註解編號

 

o_o_f##o_o_CON 評論內容

 

EC_CREATE_TIME   #註解建立時間

 

EC_REPLY       

#EC_REPLY      

EC_REPLY_TIME     評論回覆時間

 

EC_NICK_NAME      

EC_NICK_NAME      

EC_NICK_NAME   ================================================= ===============

 

2.#專案架構的建構

 

2.1從實體層開始 

Entity層程式碼如下:

# User使用者類別:

Product_category產品類別:

#Product商品資訊表:

Order訂單表:

Order_detail訂單詳情表:

News資訊表:

User_address位址類別:

Count類別:

開始著手項目:1:

我的登入:

功能是:效驗,驗證碼,登入成功跳到頁面。

開始分層:

工具BaseDao:
package cn.com.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class BaseDAO {public static final String driver = "com.mysql.jdbc.Driver";public static final String url = "jdbc:mysql://localhost:3306/easybuy?useUnicode=true&charaterEncoding=UTF-8";public static final String username = "root";public static final String pwd = "1234";public Connection con=null;public PreparedStatement ps=null;public ResultSet rs=null;    //获取连接getConnectionpublic Connection getConnection() throws Exception {//加载驱动        Class.forName(driver);if (con == null || con.isClosed()) {
            con = DriverManager.getConnection(url, username, pwd);
        }return con;
    }//查询 executeQuerypublic ResultSet executeQuery(String sql, Object...objects) throws Exception {
        con = getConnection();
        ps = con.prepareStatement(sql);for (int i = 0; i < objects.length; i++) {
            ps.setObject(i + 1, objects[i]);
        }
        rs = ps.executeQuery();return rs;
    }//增、删、改public int executeUpudate(String sql, Object... objects) throws Exception {
        con = getConnection();
        ps = con.prepareStatement(sql);for (int i = 0; i < objects.length; i++) {
            ps.setObject(i + 1, objects[i]);
        }int num = ps.executeUpdate();        return num;
    }public void closeAll() throws Exception {if (rs != null || !rs.isClosed()) {
            rs.close();
        }if (ps != null || !ps.isClosed()) {
            ps.close();
        }if (con != null || !con.isClosed()) {
            con.close();
        }
    }
}
登入後複製

dao層:
   select(String name,String pwd)  Exception;

}
登入後複製

dao的實作層:
  UserDaoImpl  BaseDAO   select(String name,String pwd) ="select count(1) from easybuy_user where loginname=? and loginname=?"=(rs!==rs.getInt("id"
登入後複製

services層:
   select(String name,String pwd)
登入後複製

services實作層:
28ef0a1e815d2b1b4e1a7d0bea7889d5

我的重难点:

难点1: 在浏览中cookie的存取。 问题描述: 当用户浏览商品时将该用或浏览的当前商品id放入cookie中在”最近浏览“中显示用户浏览过的商品信息 难点:cookie中存放有SessionId如何区分SessionId和商品id? 解决方案: 在将商品id放入cookie中是将cookie的key值和value值设置为相同的值也就是商品的id(cookie中存放Sessionid的cookie的key值和value值不一样),然后在遍历cookie时对比其key值和value值是否相等(相等即商品id不相等则不是商品)

难点2: 百度富文本编辑器中图片上传的配置 问题描述: 使用百度的文本富文本编辑器是传图片后不能在页面上显示 解决方案: 在ueditor的jsp文件夹下的config.json文件中配置正确的上传路径和访问访问路径。 imagePathFormat:图片上传后保存的路径相对于网站的根目录 imageUrlPrefix:图片的访问路径前缀相对于当前页面路径,其访问路径为imagerurlPrefix+imagePathFormat

难点3: 商品分类信息的层级显示: 问题描述: 商品分类中存在父级分类和子分类。如何显示 解决方案: 分别查询出父级分类和子级分类类在遍历父级分类时遍历子级分类找出该父级分类的子分类进行显示 复制代码如下:

商品分类

       
           
            //遍历父级分类            
${pitem.EPC_NAME }
//显示父分类             //遍历子级分类                                    
${citem.EPC_NAME }
           
           
        
                                           
       

难点4:

使用过滤器实现权限控制 问题描述: 如何区分哪些页面需要验证权限 解决方案: 将需要验证权限的页面设置统一格式的路径在Filter中使用正则表达式筛选出取药进行权限验证的页面进行权限验证,

 

自在人与人

 

以上是分享一個易買網項目的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為手機如何實現雙微信登入? 華為手機如何實現雙微信登入? Mar 24, 2024 am 11:27 AM

華為手機如何實現雙微信登入?隨著社群媒體的興起,微信已成為人們日常生活中不可或缺的溝通工具之一。然而,許多人可能會遇到一個問題:在同一部手機上同時登入多個微信帳號。對於華為手機用戶來說,實現雙微信登入並不困難,本文將介紹華為手機如何實現雙微信登入的方法。首先,華為手機自帶的EMUI系統提供了一個很方便的功能-應用程式雙開。透過應用程式雙開功能,用戶可以在手機上同

Win11管理員權限取得詳解 Win11管理員權限取得詳解 Mar 08, 2024 pm 03:06 PM

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

PHP程式設計指南:實作斐波那契數列的方法 PHP程式設計指南:實作斐波那契數列的方法 Mar 20, 2024 pm 04:54 PM

程式語言PHP是一種用於Web開發的強大工具,能夠支援多種不同的程式設計邏輯和演算法。其中,實作斐波那契數列是一個常見且經典的程式設計問題。在這篇文章中,將介紹如何使用PHP程式語言來實作斐波那契數列的方法,並附上具體的程式碼範例。斐波那契數列是一個數學上的序列,其定義如下:數列的第一個和第二個元素為1,從第三個元素開始,每個元素的值等於前兩個元素的和。數列的前幾元

Oracle SQL中的除法運算詳解 Oracle SQL中的除法運算詳解 Mar 10, 2024 am 09:51 AM

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

如何在華為手機上實現微信分身功能 如何在華為手機上實現微信分身功能 Mar 24, 2024 pm 06:03 PM

如何在華為手機上實現微信分身功能隨著社群軟體的普及和人們對隱私安全的日益重視,微信分身功能逐漸成為人們關注的焦點。微信分身功能可以幫助使用者在同一台手機上同時登入多個微信帳號,方便管理和使用。在華為手機上實現微信分身功能並不困難,只需要按照以下步驟操作即可。第一步:確保手機系統版本和微信版本符合要求首先,確保你的華為手機系統版本已更新至最新版本,以及微信App

掌握Golang如何實現遊戲開發的可能性 掌握Golang如何實現遊戲開發的可能性 Mar 16, 2024 pm 12:57 PM

在現今的軟體開發領域中,Golang(Go語言)作為一種高效、簡潔、並發性強的程式語言,越來越受到開發者的青睞。其豐富的標準庫和高效的並發特性使它成為遊戲開發領域的一個備受關注的選擇。本文將探討如何利用Golang來實現遊戲開發,並透過具體的程式碼範例來展示其強大的可能性。 1.Golang在遊戲開發中的優勢作為靜態類型語言,Golang正在建構大型遊戲系統

PHP遊戲需求實作指南 PHP遊戲需求實作指南 Mar 11, 2024 am 08:45 AM

PHP遊戲需求實現指南隨著網路的普及和發展,網頁遊戲的市場也越來越火爆。許多開發者希望利用PHP語言來開發自己的網頁遊戲,而實現遊戲需求是其中一個關鍵步驟。本文將介紹如何利用PHP語言來實現常見的遊戲需求,並提供具體的程式碼範例。 1.創造遊戲角色在網頁遊戲中,遊戲角色是非常重要的元素。我們需要定義遊戲角色的屬性,例如姓名、等級、經驗值等,並提供方法來操作這些

PHP模運算子的作用及用法詳解 PHP模運算子的作用及用法詳解 Mar 19, 2024 pm 04:33 PM

PHP中的模運算子(%)是用來取得兩個數值相除的餘數的。在本文中,我們將詳細討論模運算子的作用及用法,並提供具體的程式碼範例來幫助讀者更好地理解。 1.模運算子的作用在數學中,當我們將一個整數除以另一個整數時,就會得到一個商和一個餘數。例如,當我們將10除以3時,商數為3,餘數為1。模運算子就是用來取得這個餘數的。 2.模運算子的用法在PHP中,使用%符號來表示模

See all articles