首頁 > Java > java教程 > 分享一個易買網項目的實例教程

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

零下一度
發布: 2017-06-25 13:30:59
原創
18449 人瀏覽過

                             

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實作層:
a9914677c58f6640d88568d483d39e24

我的重难点:

难点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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板