名称 数据类型 长度 是否主键 说明 id varchar 50 主键 客户编号 khname varchar 50 客户名称 jian varchar 50 客户简称 address varchar 100 客户地址 bianma varchar 50 邮政编码 tel varchar 50 客户电话 fax varchar 50 客户传真 lian varchar 50 联系人 ltel varchar 50 联系人电话 mail varchar 50 E-mail地址 xinhang varchar 60 开户行 hao varchar 60 账号 3.2 系统功能模块设计
3.2.1 公共类设计
公共类也是代码重用的一种形式,他将各个功能模块经常调用的方法提取到共用的Java类中,例如访问数据库的Dao类容纳了所有访问数据库的方法,并同时管理者数据库的连接和关闭。这样不但实现了项目代码的重用,还提高了程序的性能和代码可读性。
(1) Item公共类
Item公共类是对数据表最常用的id和name属性的封装,用于Swing列表、表格、下拉
列表框等组件的复制,该类重写了toString()方法,在该类方法中只输出那么属性,所以Item类在Swing组件现实文本时只包含名称信息,不会连带着id属性。但是在获取组件的内容时,获取的是Item类的对象,从该对象中可以很容易的获取id属性,然后通过该属性到数据库中获取唯一的数据。
(2) 数据模型公共类
数据模型公共类,它对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中每个模块甚至各个组件所使用。和Item公共类的使用方法类似,数据模型也是对数据表中所有字段(属性)的封装,但是数据类型是纯粹的模型,它不但需要重写父类的toString()方法,还要重写hashCode()方法和equals()方法(这两个方法分别用于生成模型对象的哈希代码和判断模型对象是否相同)。模型类主要用于存储数据,并通过想要的getXXX()方法和setXXX()实现不同属性的访问原则。
(3) Dao类
Dao 的全称是Data Access Object,即数据库访问对象。本项目中应用该名称数据库
访问类的名称,在该类中实现了数据库的驱动、连接、关闭和多个操作数据库的方法,这些诶方法包括不同数据表的操作方法。
其关键代码如下:
package com.lzw.dao;
import java.sql.*;
import java.
sql.Date;
import java.util.*;
import javax.swing.JOptionPane;
import com.lzw.Item;
import com.lzw.dao.model.*;
public class Dao {
protected static String dbClassName = "net.sourceforge.jtds.jdbc.Driver";
protected static String dbUrl = "jdbc:jtds:sqlserver://localhost:1433/"
+ "db_database28;SelectMethod=Cursor";
protected static String dbUser = "sa";
protected static String dbPwd = "";
protected static String second = null;
public static Connection conn = null;
static {
try {
if (conn == null) {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,
"请将SQL Server 2000的JDBC驱动包复制到lib文件夹中。");
System.exit(-1);
} catch (Exception e) {
e.printStackTrace();
}
}
3.2.2 系统登录模块设计
系统登录也是项目必须开发的模块,主要由两部分组成,一部分是登录窗体,另一部分是窗体中带背景图片的内容面板。它是系统的安全门,只有提供正确的用户名和登录口令之后,才能进入企业进销存管理系统进行进销存管理
工作。系统登录模块如图3.5所示。
图3.5 系统登