從小到大沒有寫日記的習慣,但本着互聯網開放,共享的原則,並且馬士兵老師曾說:當你學會一些技能的時候,看到別人正被你會的東西所困擾,你應該去幫助他。所以把倉庫管理系統的詳解記錄一下。說的可能不那么專業,但基本都能聽懂。本人編程起步,有錯誤請指出。
先介紹一下該系統主要用到的思想。
1.MVC框架:M(model) V(view) C(controller) 該框架把一個復雜的項目分離成一個個小部分。各個部分相互聯系,並且負責自己的職責。Model(模型),是程序的主體部分,主要包含業務數據和業務邏輯。View(視圖),是程序呈現給用戶的部分,是用戶和程序交互的接口。 Controller(控制器),Controller是用來處理用戶輸入數據,已經更新業務模型的部分。 但是這種框架會提高一個項目的復雜性,提高結構的復雜度。但本項目不是很難,和復雜度也不高。所以我采用了MVC設計模式,在項目中我使用了一般的MVC分包結構 :
bean包——負責項目對象的bean結構 。JavaBean其實就一種規范,便於封裝和重用。
dao——負責數據庫操作,並使用面向接口,將主要的方法實現封裝成接口,方法去繼承接口從而實現功能 。
view——負責視圖和調用方法
util——負責數據庫的連接
2.面向接口編程:面向接口編程把方法的詳細實現封裝成接口,方法繼承接口然后調用方法,提高的程序的可讀性。我們可以只去關心這個接口應該被誰使用。Java只能單繼承父類,而可以繼承多個接口。總之面向接口編程的好處可能一個小項目看不出來,而一個大的項目則可以看出它的價值,大家可以仔細學一下。
接下來我們從0開始講解一下這個項目的實現,項目的功能分析的步驟自動忽略···
我們先建立一個數據庫 表為goods,storage,users
接下來我們在util中寫一個DB.java類實現數據庫的連接。該連接我使用properties文件,實現文件讀取連接數據庫的四大屬性,該實現方法的優點:這里我使用的是Mysql數據庫,假如有一天我們換一個access的數據庫,其驅動器會發生變化,這是如果我們使用傳統的連接方法需要暫停程序修改,甚至引起程序錯誤。
import java.awt.im.InputContext;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;public class DB {
static Properties props=null;
static{
try {
props=new Properties();
InputStream in=DB.class.getResourceAsStream("dbconfig.properties");
props.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//數據庫連接
public static Connection con;
public DB(){
try {
//加載驅動
Class.forName(props.getProperty("Driver"));
//獲取連接
con=DriverManager.getConnection(props.getProperty("url"),props.getProperty("username"),props.getProperty("password"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//獲取連接
public static Connection getConnection(){
if(con == null){
new DB();
}
return con;
}
}
dbconfig.properties文件內容
Driver=com.mysql.jdbc.Driver
username=root
password=root
url=jdbc:mysql://localhost:3306/Test
這樣就實現了數據庫的連接,並且效果更佳。