从小到大没有写日记的习惯,但本着互联网开放,共享的原则,并且马士兵老师曾说:当你学会一些技能的时候,看到别人正被你会的东西所困扰,你应该去帮助他。所以把仓库管理系统的详解记录一下。说的可能不那么专业,但基本都能听懂。本人编程起步,有错误请指出。
先介绍一下该系统主要用到的思想。
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
这样就实现了数据库的连接,并且效果更佳。