摘 要
Abstract
1. 绪 论
1.1毕业设计主要任务
1.2目前图书管理系统存在的问题
1.3课题意义
1.4论文的工作和安排
2.图书借阅管理需求分析
2.1 可行性分析
2.1.1 技术可行性
2.1.2.经济可行性
2.2 图书借阅管理系统需求概述
2.2.1系统目标
2.2.2用户类和用户特性
2.3 图书借阅管理系统需求模型
2.3.1功能描述
2.3.2图书管理员详细功能描述
2.3.3读者详细功能描述
2.3.4主要用例的用例描述
3.总体设计
3.1 数据库设计
3.1.1数据库设计概述
3.1.2数据库设计:
图书信息表:
3.2 系统总体结构设计
3.2.1图书管理系统总体结构图
3.2.2 系统管理员模块功能
3.2.3 读者管理模块功能
3.2.4 图书管理模块功能
3.2.5 图书借还模块功能
3.2.6 系统查询模块功能
4.程序设计与编码
4.1开发平台与工具
4.1.1 J2EE平台
4.1.2 WEB服务器和数据库
4.2程序设计
4.2.1程序设计概述
4.2.2数据库与Web服务器的连接
package com.ljj.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.ljj.model.BookInfo;
import com.ljj.model.BookType;
import com.ljj.model.Operator;
import com.ljj.model.Reader;
import com.ljj.model.User;
public class Dao {
protected static String dbClassName = "com.micros
protected static String dbUrl = "jdbc:sqlserver:/
+ "DatabaseName=db_library;SelectMethod=Cursor"
protected static String dbUser = "sa";
protected static String dbPwd = "zhangyong";
protected static String second = null;
private static Connection conn = null;
//创建数据库连接
private Dao() {
try {
if (conn == null) {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUs
System.out.println("数据库连接成功!");
}
else
return;
} catch (Exception ee) {
ee.printStackTrace();
}
}
//执行查询
private static ResultSet executeQuery(String sql)
try {
if(conn==null)
new Dao();
return conn.createStatement(ResultSet.TYPE_SCRO
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {
}
}
//执行更新
private static int executeUpdate(String sql) {
try {
if(conn==null)
new Dao();
return conn.createStatement().executeUpdate(sql
} catch (SQLException e) {
System.out.println(e.getMessage());
//if(e.getMessage().equals("[Microsoft][SQLServ
return -1;
} finally {
}
}
//关闭数据库
public static void close() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
/*
* 管理员登录方法
*/
public static Operator check(String name, String
int i = 0;
Operator operater=new Operator();
String sql = "select * from tb_operator where n
+ "' and password='" + password + "'and admin=
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
String names = rs.getString(1);
operater.setId(rs.getString("id"));
operater.setName(rs.getString("name"));
operater.setGrade(rs.getString("admin"));
operater.setPassword(rs.getString("password"))
if (names != null) {
i = 1;
}
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return operater;
}
/*
* 查询类别方法
*/
//查询图书目录
public static List selectBookCategory() {
List list=new ArrayList();
String sql = "select * from tb_bookType";
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
BookType bookType=new BookType();
bookType.setId(rs.getString("id"));
bookType.setTypeName(rs.getString("typeName"))
list.add(bookType);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
public static List selectBookCategory(String book
List list=new ArrayList();
String sql = "select days from tb_bookType wher
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
BookType type=new BookType();
type.setDays(rs.getString("days"));
list.add(type);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
/*
* 图书类别表相关操作
*
*/
//插入图书类型
public static int InsertBookType(String bookTypeN
int i=0;
try{
String sql="insert into tb_bookType(typeName) v
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
return i;
}
//更新图书类别
public static int UpdatebookType(String id,String
int i=0;
try{
String sql="update tb_bookType set typeName='"+
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
//删除图书类别
public static int DelbookType(String id){
int i=0;
try{
String sql="delete from tb_bookType where id='"
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
/*
* 图书信息表相关操作
*/
/*
* 插入图书信息方法
*/
//插入图书信息
public static int Insertbook(String ISBN,String t
int i=0;
try{
String sql="insert into tb_bookInfo(ISBN,typeId
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
System.out.println(e.getMessage());
}
Dao.close();
return i;
}
/*
* 查询图书相关信息
*
*/
public static List selectBookInfo() {
List list=new ArrayList();
String sql = "select * from tb_bookInfo";
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
BookInfo bookinfo=new BookInfo();
bookinfo.setISBN(rs.getString("ISBN"));
bookinfo.setTypeid(rs.getString("typeid"));
bookinfo.setBookname(rs.getString("bookname"))
bookinfo.setWriter(rs.getString("writer"));
bookinfo.setTranslator(rs.getString("translato
bookinfo.setPublisher(rs.getString("publisher"
bookinfo.setDate(rs.getDate("date"));
bookinfo.setPrice(rs.getDouble("price"));
list.add(bookinfo);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
public static List selectBookInfo(String ISBN) {
List list=new ArrayList();
String sql = "select * from tb_bookInfo where I
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
BookInfo bookinfo=new BookInfo();
bookinfo.setISBN(rs.getString("ISBN"));
bookinfo.setTypeid(rs.getString("typeid"));
bookinfo.setBookname(rs.getString("bookname"))
bookinfo.setWriter(rs.getString("writer"));
bookinfo.setTranslator(rs.getString("translato
bookinfo.setPublisher(rs.getString("publisher"
bookinfo.setDate(rs.getDate("date"));
bookinfo.setPrice(rs.getDouble("price"));
list.add(bookinfo);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
/*
* 修改图书信息方法
*/
//更新图书信息
public static int Updatebook(String ISBN,String t
int i=0;
try{
String sql="update tb_bookInfo set ISBN='"+ISBN
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
///*
// * 删除图书信息方法
// */
public static int Delbook(String ISBN){
int i=0;
try{
String sql="delete from tb_bookInfo where ISBN=
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
/*
* 对读者信息表执行的相关操作
*/
//增加读者信息
public static int InsertReader(String name,String
int i=0;
try{
String sql="insert into tb_reader(name,sex,age,
System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
public static List selectReader() {
List list=new ArrayList();
String sql = "select * from tb_reader";
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
Reader reader=new Reader();
//reader.setId(rs.getString("id"));
reader.setName(rs.getString("name"));
reader.setSex(rs.getString("sex"));
reader.setAge(rs.getString("age"));
reader.setIdentityCard(rs.getString("identityC
reader.setDate(rs.getDate("date"));
reader.setMaxNum(rs.getString("maxNum"));
reader.setTel(rs.getString("tel"));
reader.setKeepMoney(rs.getDouble("keepMoney"))
reader.setZj(rs.getInt("zj"));
reader.setZy(rs.getString("zy"));
reader.setISBN(rs.getString("ISBN"));
reader.setBztime(rs.getDate("bztime"));
list.add(reader);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
public static List selectReader(String readerISBN
List list=new ArrayList();
String sql = "select * from tb_reader where ISB
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
Reader reader=new Reader();
reader.setName(rs.getString("name"));
reader.setSex(rs.getString("sex"));
reader.setAge(rs.getString("age"));
reader.setIdentityCard(rs.getString("identityC
reader.setDate(rs.getDate("date"));
reader.setMaxNum(rs.getString("maxNum"));
reader.setTel(rs.getString("tel"));
reader.setKeepMoney(rs.getDouble("keepMoney"))
reader.setZj(rs.getInt("zj"));
reader.setZy(rs.getString("zy"));
reader.setISBN(rs.getString("ISBN"));
reader.setBztime(rs.getDate("bztime"));
list.add(reader);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
//更新读者信息
public static int UpdateReader(String id,String n
int i=0;
try{
String sql="update tb_reader set name='"+name+"
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
//删除读者信息
public static int DelReader(String ISBN){
int i=0;
try{
String sql="delete from tb_reader where ISBN='"
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
//new
public static List selectbookserch() {
List list=new ArrayList();
String sql = "select * from tb_bookInfo";
ResultSet s = Dao.executeQuery(sql);
try {
while (s.next()) {
BookInfo bookinfo=new BookInfo();
bookinfo.setISBN(s.getString(1));
bookinfo.setTypeid(s.getString(2));
bookinfo.setBookname(s.getString(3));
bookinfo.setWriter(s.getString(4));
bookinfo.setTranslator(s.getString(5));
bookinfo.setPublisher(s.getString(6));
bookinfo.setDate(s.getDate(7));
bookinfo.setPrice(s.getDouble(8));
list.add(bookinfo);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
//插入管理员
public static int Insertoperator(String name,Stri
int i=0;
try{
String sql="insert into tb_operator(name,sex,ag
System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
public static List selectuser() {
List list=new ArrayList();
String sql = "select id,name,sex,age,yajin,workd
ResultSet rs = Dao.executeQuery(sql);
try {
while (rs.next()) {
User user=new User();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
user.setAge(rs.getInt(4));
//user.setIdentityCard(rs.getString(5));
user.setYajin(rs.getInt(5));
user.setWorkdate(rs.getDate(6));
user.setTel(rs.getString(7));
user.setPassword(rs.getString(8));
list.add(user);
}
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return list;
}
//删除用户
public static int Deluser(int id){
int i=0;
try{
String sql="delete from tb_operator where id='"
//System.out.println(sql);
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
public static int Updateuser(int id,String name,S
int i=0;
try{
String sql="update tb_operator set name='"+name
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
public static int Updatepass(String password,Stri
int i=0;
try{
String sql="update tb_operator set password='"+
i=Dao.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return i;
}
}
4.2.3登录模块程序设计
class BookLoginAction implements ActionListener {
public void actionPerformed(final ActionEvent e)
user = Dao.check(username.getText(), password.g
if (user.getName() != null) {
try {
MainFrame frame = new MainFrame();
frame.setVisible(true);
LoginIFrame.this.setVisible(false);
} catch (Exception ex) {
ex.printStackTrace();
}
} else {
JOptionPane.showMessageDialog(null, "只有管理员才可以登
username.setText("");
password.setText("");
}
}
}
4.2.5读者管理功能模块的实现
4.2.6查询功能模块的实现
4.2.7图书管理功能模块的实现
4.2.8图书借还功能模块的实现
5.1 软件测试的方法与步骤
5.2 测试用例设计与测试用例的运行过程及测试结果分析
5.2.1模块测试
5.2.2集成测试
5.2.3 验收测试
5.3 评价
6.1 工作成果
6.2 改进意见
6.3 收获体会
致 谢