程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java設計模塊系列之書店治理體系單機版(一)

Java設計模塊系列之書店治理體系單機版(一)

編輯:關於JAVA

Java設計模塊系列之書店治理體系單機版(一)。本站提示廣大學習愛好者:(Java設計模塊系列之書店治理體系單機版(一))文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計模塊系列之書店治理體系單機版(一)正文


書店治理體系:

項目演習目的 :
1、Java運用法式根本剖析
2、造就面向對象編程的根本思惟
3、Java根本設計形式綜合運用
4、控制分層和接口的根本設計
5、構建公道的Java運用法式包構造
6、綜合運用JSE所進修的常識
7、在運用中公道應用聚集框架
8、在運用中綜合應用swing的經常使用組件
9、根本的表示層的完成機制
10、IO流和文件的根本操作
11、造就優越的Java編程習氣
12、造就調試Java法式的才能,造就改錯的才能

項目功效需求 :
1、能停止操感化戶的注冊,修正根本信息,刪除和查詢。
2、能對圖書的根本信息停止增長、刪除、修正和查詢操作。
3、能填寫進貨單,一張進貨單帶有多條詳細的進貨信息,進貨的書本必需是圖書治理外面曾經有的;進貨的同時修正庫存對應書本的存貨量。
4、能填寫發賣單,一張發賣單帶有多條詳細的發賣信息,發賣的書本必需是圖書治理外面曾經有的,並且發賣的數目不克不及跨越以後庫存的數目;發賣的同時修正庫存對應書本的存貨量。
5、可以檢查庫存的明細,可以依照前提停止查找詳細的圖書的庫存值。
6、權限方面停止簡化,做固定的權限掌握。把用戶依照模塊分紅分歧操作權限的人員,特設一個admin的用戶,可以操作全體的功效。

項目根本設計 :
★ 架構設計
全體框架、模塊劃分
模塊劃分:用戶、圖書、進貨、發賣和庫存5個模塊

★ 體系功效構造設計
每一個功效模塊的詳細功效子模塊

★ 數據庫設計
項目框架完成:分模塊、分層、分包、構建運用法式

1、用戶治理(User.txt)

 

解釋:個中的type為int類型,用來表現操感化戶的類型。
1——表現為admin,可以停止全體操作
2——表現為能操作圖書模塊的人員
3——表現為能操作進貨模塊的人員
4——表現為能操作發賣模塊的人員
5——表現為能操作庫存模塊的人員

2、圖書治理(Book.txt)

3、進貨治理(InMain.txt)

4、進貨明細治理(InDetail.txt)

5、發賣治理(OutMain.txt)

6、發賣明細治理(OutDetail.txt)

7、庫存治理(Stock.txt)

項目分包

第一層:依照模塊分
用戶模塊(user)、
圖書(book)、
進貨(in)、
發賣(out)、
庫存(store)

第二層:依照三層形式分
表示層(ui)、邏輯層(business) 和 數據層(dao)
平日還要增長一個值對象層(vo)

第三層:依照層內劃分去分
視詳細情形而定,如business和dao內還要再采取鐵三角的情勢建子包,而ui和vo則不須要再劃份子包)。

項目分層思惟:

 

未完美,請持續存眷本系列(二)

上面為部門代碼:(util外面的一個公共類)

cn.hncu.bookStore.util
FileIoUtil.java:

package cn.hncu.bookStore.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 * 用戶的公用數據讀取寫入類
 * @author 陳浩翔
 *
 * @version 1.0
 */
public class FileIoUtil {

 public FileIoUtil() {
 }

 /**
 * 從數據庫中讀取一切的數據並前往出來
 * 
 * @param fileName(數據表對應的文件名字)
 * @param ee(傳遞過去的泛型的類型!)
 * @return 一切表的記載!
 */
 @SuppressWarnings("unchecked")//壓正告
 public static<E> List<E> readFormFile(String fileName,E ee){
 List<E> list = new ArrayList<E>();
 final File file = new File(fileName);

 ObjectInputStream in =null;
 if(!file.exists()){
  JOptionPane.showMessageDialog(null, "數據表不存在!");
  return list;
 }
 try {
  in = new ObjectInputStream(new FileInputStream(fileName));
  try {
  list = (List<E>) in.readObject();

  } catch (ClassNotFoundException e) {
  e.printStackTrace();
  }
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(in!=null){
  try {
   in.close();
  } catch (IOException e) {
   throw new RuntimeException("數據庫封閉掉敗");
  }
  }
 }
 return list;
 }


 /**
 * 寫入一個list聚集進入數據文件fileName
 * 
 * @param list(須要存儲的數據聚集)
 * @param fileName(寫入到哪一個文件的文件名字)
 */
 public static void write2file(List<Object> list, String fileName){
 ObjectOutputStream out = null;

 try {
  out = new ObjectOutputStream(new FileOutputStream(fileName));
  out.writeObject(list);
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(out!=null){
  try {
   out.close();
  } catch (IOException e) {
   throw new RuntimeException("數據庫封閉掉敗!");
  }
  }
 }
 }

}

封裝的用戶數據:

cn.hncu.bookStore.user.vo;
UserModel.java


package cn.hncu.bookStore.user.vo;

/**
 * @author 陳浩翔
 * @version 1.0
 * 
 * <br/>
 * 用於保留用戶信息的值對象<br/>
 * 1、可序列化<br/>
 * 2、公有化一切變量成員,補setter-getters辦法<br/>
 * 3、寫equals和hashCode辦法----用主鍵(uuid)獨一標識碼<br/>
 * 4、toString辦法<br/>
 * 5,空參結構辦法<br/>
 */

public class UserModel {
 private String uuid;//用戶獨一標識碼
 private String name;//用戶名
 private int type;//用戶類型
 private String pwd;//用戶暗碼
 public UserModel() {
 }

 /**
 * 功效:獲得uuid-用戶獨一的標識碼
 * 
 * @return 前往uuid-用戶獨一的標識碼
 */
 public String getUuid() {
 return uuid;
 }

 /**
 * 功效:設置uuid-用戶獨一的標識碼
 * @param uuid-用戶獨一的標識碼-String型參數
 */
 public void setUuid(String uuid) {
 this.uuid = uuid;
 }

 /**
 * 功效:獲得用戶的用戶名
 * @return---name-用戶名
 */
 public String getName() {
 return name;
 }

 /**
 * 功效:設置用戶的用戶名
 * 
 * @param name--用戶設置的用戶名,String型參數
 */
 public void setName(String name) {
 this.name = name;
 }

 /**
 * 功效:獲得用戶的類型:
 * 1——表現為admin,可以停止全體操作
 * 2——表現為能操作圖書模塊的人員
 * 3——表現為能操作進貨模塊的人員
 * 4——表現為能操作發賣模塊的人員
 * 5——表現為能操作庫存模塊的人員
 * @return 用戶的類型
 */
 public int getType() {
 return type;
 }

 /**
 * 功效:設置用戶的類型:
 * 1——表現為admin,可以停止全體操作
 * 2——表現為能操作圖書模塊的人員
 * 3——表現為能操作進貨模塊的人員
 * 4——表現為能操作發賣模塊的人員
 * 5——表現為能操作庫存模塊的人員
 * @param type--用戶的類型-int型參數
 */
 public void setType(int type) {
 this.type = type;
 }

 /**
 *功效:獲得用戶的暗碼
 * @return String型,用戶的暗碼
 */
 public String getPwd() {
 return pwd;
 }

 /**
 * 功效:設置用戶的暗碼
 * @param pwd--String型參數
 */
 public void setPwd(String pwd) {
 this.pwd = pwd;
 }


 @Override
 public int hashCode() {
 final int prime = 31;
 int result = 1;
 result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
 return result;
 }
 @Override
 public boolean equals(Object obj) {
 if (this == obj)
  return true;
 if (obj == null)
  return false;
 if (getClass() != obj.getClass())
  return false;
 UserModel other = (UserModel) obj;
 if (uuid == null) {
  if (other.uuid != null)
  return false;
 } else if (!uuid.equals(other.uuid))
  return false;
 return true;
 }
 @Override
 public String toString() {
 return "UserModel [uuid=" + uuid + ", name=" + name + ", type=" + type
  + ", pwd=" + pwd + "]";
 }

}

封裝的用戶查詢數據:

cn.hncu.bookStore.user.vo;
UserQueryModel.java


package cn.hncu.bookStore.user.vo;

public class UserQueryModel extends UserModel{ 
}

固然這個類甚麼都沒有,就只是繼續了UserModel,但照樣必需寫,這是年夜家都遵照的java編寫標准!

用戶Dao(數據層):(接口)

cn.hncu.bookStore.user.dao.dao;
UserDao.java


package cn.hncu.bookStore.user.dao.dao;

import java.util.List;

import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.user.vo.UserQueryModel;

/**
 * 
 * @author 陳浩翔
 *
 * @version 1.0
 * 用戶模塊的數據層接口
 */
public interface UserDao {
 /**
 * 功效:創立一個用戶
 * 
 * @param userModel---將要創立的用戶數據
 * @return---true表現創立勝利,false表現創立掉敗
 */
 public boolean create(UserModel user);

 /**
 * 功效:刪除一個用戶
 * 
 * @param uuid---用戶獨一的標識碼,每一個用戶都不會雷同
 * @return---true表現刪除勝利,false表現刪除掉敗
 */
 public boolean delete(String uuid);

 /**
 * 功效:修正用戶數據材料
 * 
 * @param user---須要修正的用戶數據參數名
 * @return 前往true-表現修正勝利了,前往false-表現修正掉敗
 */
 public boolean update(UserModel user);

 /**
 * 功效:獲得一切的用戶數據
 * 
 * @return---一個UserModel聚集,也就是用戶的數據
 */
 public List<UserModel> getAll();

 /**
 * 功效:依照必定的查找前提停止查找,
 * <br/>
 * 把知足查找前提的用戶數據前往。
 * 
 * @param uqm---被封裝的查找前提
 * @return---知足查找前提的用戶數據聚集
 */
 public List<UserModel> getbyCondition(UserQueryModel uqm);

 /**
 * 功效:獲得一個肯定的用戶的數據材料
 * 
 * @param uuid---用戶獨一標識碼
 * @return ---前往按這個獨一標識碼找到的用戶數據
 */
 public UserModel getSingle(String uuid);

}


以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved