protected static String dbPwd = \private static Connection conn = null; private static String ISBN; private Dao() { try {
if (conn == null) {
//数据库密码
//数据库连接对象
//构造方法
//如果连接对象为空 //加载驱动类
Class.forName(dbClassName);
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//获得连接对象
}
……
}
private static ResultSet executeQuery(String sql) { //查询方法 try {
if(conn==null) new Dao(); //如果连接对象为空,则重新调用构造方法
return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE).executeQuery(sql);//执行查询
} catch (SQLException e) {
e.printStackTrace(); return null;
//返回null值
} finally {
}
}
private static int executeUpdate(String sql) { try {
if(conn==null) new Dao(); //如果连接对象为空,则重新调用构造方法
return conn.createStatement().executeUpdate(sql);//执行更新
//更新方法
} catch (SQLException e) {
e.printStackTrace(); return -1;
} finally {
7
} }
public static void close() {//关闭方法 try {
conn.close();//关闭连接对象
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null; //设置连接对象为null值
}
}
第四章 图书管理系统的设计与功能实现
4.1 系统登录模块
相对于图书馆管理系统来说,不是所有的用户都是可以使用的,所以需要添加一个登录模块。并且通过该模块来对用户的合法性进行判断,只有合法的用户才能够进入到系统里。整个登录模块的实现是非常简单的,并不需要太多复杂的输入,只需要输入用户名和密码就行了,相信读者能够快速掌握登录模块的操作模式。登录模块的运行结果如图3-1所示。
图3-1 系统登录界面
4.1.1 登录窗体界面设计
登录窗体的界面设计我依然习惯于采用的是比较传统的方法,新建一个类BookLoginFrame类,是用来显示登录窗体。在登录窗体中需要使用到的四类控件分别为JLabel、JTextFieid、JPasswordField以及JButton。这其中控件JLabel是用来显示最顶部的图片以及标签文本;控件JTextFieid是用来接收用户名输入的信息;控件JPasswordField是用来接收密码输入的信息;控件JButton是用来创建登陆和重置
8
按钮。
图书馆管理系统的主窗体模式是采用由三个部分来组成的。第一部分就是位于主窗体上组最上端的系统菜单栏,是用来实现链接系统功能的菜单。第二部分则是位于菜单栏下面的工具栏,是用来提供各种常用功能的链接。第三部分则是位于工具下的系统功能窗口区域,主要是用来显示各种功能窗口。其运行界面如图3-2所示。
图3-2 主窗体界面
4.1.2操作员登录
在数据库Dao类中新增一个方法check,可以通过该方法来检测用户信息是否合法。该方法分别接收两个参数,一个是操作员用户名name,另一个则是操作员密码passsward。操作员密码可以进行随机设置,如果输入不正确就不能进入系统。
public static Operater check(String name, String password) { Operater operater=new Operater();//操作员信息对象
String sql = \ from tb_operator where name='\
+ \ResultSet rs = Dao.executeQuery(sql);
9
try {
while (rs.next()) {
operater.setId(rs.getString(\operater.setName(rs.getString(\operater.setGrade(rs.getString(\operater.setPassword(rs.getString(\
……
}
4.2图书信息管理模块
图书信息管理模块中包含了两个子模块,分别是图书信息添加模块以及图书信息修改模块。这其中图书信息添加模块是用来录入新的图书信息,图书信息修改模块则是用来修改已有的图书信息。 4.2.1 图书信息添加界面设计
图书信息添加的窗体一共包含由三个部分,第一部分则是位于窗体最上端的图片。第二部分则是位于中间的主面板,是用来提供各种标签和表单元素。第三部分就是位于主面板下的按钮面板,是用来提供添加和关闭两个按钮。其运行界面如图3-3所示。
图3-3 图书信息添加界面
10
4.2.2 检测书籍编号是否已存在
因为不能存在有重复的书籍编号,并且为了防止操作员的操作错误而造成的重复书籍编号,所以需要提供一个书籍编号的监测系统。如果该书籍编号已经存在,则不能进行添加编号,否则可以进行添加编号。
为了检测书籍编号是否存在,则需要在数据库Dao类中添加一个方法,该方法是用来接收输入的书籍编号,然后进行查询该书籍编号对应的书籍记录,其主要方法如下: public static List selectBookInfo(String ISBN) {//根据图书编号查询图书
}
对于书籍编号进行检测,一般都是在操作员输入完书籍的编号,并且准备输入其他的信息时来完成。这就是需要新建一个ISBNFFocusListener监听类,该类则继承了FocusAdoper类,并实现其中的focusLost,其实现的代码如下:
class ISBNFocusListener extends FocusAdapter {
}
public void focusLost(FocusEvent e){ }
if(!Dao.selectBookInfo(ISBN.getText().trim()).isEmpty()){ JOptionPane.showMessageDialog(null, \添加书号重复!\ }
return;
List list=new ArrayList();//保存所有查询到的书籍信息
String sql = \ from tb_bookInfo where ISBN='\
ResultSet rs = Dao.executeQuery(sql);//执行查询 ……//插入数据,关闭连接
4.2.3 图书信息添加
如果要添加图书书籍的信息,首先要在数据库Dao类中添加一个Insertbook方法,通过该方法来实现接受用户输入的所有图书书籍的信息,然后执行插入操作。这其中主要的方法如下:
public static int Insertbook(String ISBN,String typeId,String bookname,
String writer,String translator,String publisher,Date date,Double price){ int i=0; try{
String sql=\ tb_bookInfo(ISBN,typeId,bookname,writer,translator,\
11
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库大学生软件工程毕业论文设计 - 图文(3)在线全文阅读。
相关推荐: