《java_项目开发实例_图书信息管理系统开发文档及源码.docx》由会员分享,可在线阅读,更多相关《java_项目开发实例_图书信息管理系统开发文档及源码.docx(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第1页 共101页第 1 页 共 101 页图书信息管理系统一、系统功能概述:根据图书信息管理系统的特点,可以将本系统分为 2 大功能模块,分别为:基础数据维护、系统数据维护。本系统各个部分及其包括的具体功能模块如下图所示:二、数据库设计:图书信息表:字段名说明类型长度及备注ISBN国际标准书号Varchar(13)主键typeId图书类型 idIntBookname书名Varchar(40)Writer作者Varchar(21)Translater译者Varchar(30)可以为空Pub
2、lisher出版社Varchar(50)Date出版日期Smalldatetime编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第2页 共101页第 2 页 共 101 页Price价格money图书类别表:字段名说明类型长度及备注TypeName图书类型Varchar(20)Id自动编号Int主键用户信息表:字段名说明类型长度及备注Id自动编号Int主键Name姓名Varchar(2)Sex性别Varchar(2)Age年龄intIdentitycard证件号码Varchar(2)Workdate办证日期datetimeTel电话号
3、码Varchar(2)Yajin押金IntPassword密码Nvarchar(10)admin管理员Nchar(10)读者信息表:字段名说明类型长度及备注Name姓名Varchar(10)Sex性别Varchar(2)Age年龄intidentityCard证件号码Varchar(30)Date日期SmalldatetimemanNum最大书量IntTel电话号码Varchar(15)keepMoney押金MineyZj证件类型IntZy职业Varchar(50)ISBN国际标准书号Varchar(13)bztime办证时间datetime三、系统源代码:Com.zhang.dao:Dao.
4、java/数据库的连接与操作类package com.zhang.dao;import java.sql.Connection;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第3页 共101页第 3 页 共 101 页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
5、 com.zhang.model.BookInfo;import com.zhang.model.BookType;import com.zhang.model.Operator;import com.zhang.model.Reader;import com.zhang.model.User;public class Dao protected static String dbClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver;protected static String dbUrl=jdbc:sqlserver:/localhos
6、t:1433;+DatabaseName=db_lib;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.getConne
7、ction(dbUrl,dbUser,dbPwd);System.out.println(数据库连接成功!);elsereturn;catch(Exception ee)ee.printStackTrace();/执行查询private static ResultSet executeQuery(String sql)try if(conn=null)new Dao();return编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第4页 共101页第 4 页 共 101 页conn.createStatement(ResultSet.T
8、YPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql);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.getMes
9、sage();/if(e.getMessage().equals(MicrosoftSQLServer 2000Driver for JDBCSQLServerDELETE 语句与 COLUMN REFERENCE 约束FK_TB_BORRO_REFERENCE_TB_BOOKI 冲突。该冲突发生于数据库 db_library,表tb_borrow,column bookISBN。)return-1;finally/关闭数据库public static void close()try conn.close();catch(SQLException e)e.printStackTrace();f
10、inallyconn=null;/*管理员登录方法*/public static Operator check(String name,String password)int i=0;Operator operater=new Operator();String sql=select*from tb_operator where name=+name+and password=+password+and admin=1;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第5页 共101页第 5 页 共 101 页ResultSet rs=
11、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 oper
12、ater;/*查询类别方法*/查询图书目录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(bookTyp
13、e);catch(Exception e)e.printStackTrace();Dao.close();return list;public static List selectBookCategory(String bookType)List list=new ArrayList();String sql=select daysfrom tb_bookType where编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第6页 共101页第 6 页 共 101 页typeName=+bookType+;ResultSet rs=Dao
14、.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 bookTypeName)int i=0;tryString sql=insert into tb_bookType(typeNa
15、me)values(+bookTypeName+);i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();return i;/更新图书类别public static int UpdatebookType(String id,String typeName)int i=0;tryString sql=update tb_bookType set typeName=+typeName+where id=+id+;/System.out.println(sql);i=Dao.executeUpdate(sql);catch(Ex
16、ception e)e.printStackTrace();Dao.close();编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第7页 共101页第 7 页 共 101 页return i;/删除图书类别public static int DelbookType(String id)int i=0;tryString sql=delete from tb_bookType where id=+id+;/System.out.println(sql);i=Dao.executeUpdate(sql);catch(Exception e
17、)e.printStackTrace();Dao.close();return i;/*图书信息表相关操作*/*插入图书信息方法*/插入图书信息public static int Insertbook(String ISBN,String typeId,Stringbookname,String writer,String translator,String publisher,Datedate,Double price)int i=0;tryString sql=insert intotb_bookInfo(ISBN,typeId,bookname,writer,translator,pub
18、lisher,date,price)values(+ISBN+,+typeId+,+bookname+,+writer+,+translator+,+publisher+,+date+,+price+);/System.out.println(sql);i=Dao.executeUpdate(sql);catch(Exception e)System.out.println(e.getMessage();Dao.close();return i;/*查询图书相关信息*编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第8页 共101页第
19、8 页 共 101 页*/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.getS
20、tring(bookname);bookinfo.setWriter(rs.getString(writer);bookinfo.setTranslator(rs.getString(translator);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 li
21、st;public static List selectBookInfo(String ISBN)List list=new ArrayList();String sql=select*from tb_bookInfo where ISBN=+ISBN+;ResultSet rs=Dao.executeQuery(sql);try while(rs.next()BookInfo bookinfo=new BookInfo();bookinfo.setISBN(rs.getString(ISBN);bookinfo.setTypeid(rs.getString(typeid);bookinfo.
22、setBookname(rs.getString(bookname);bookinfo.setWriter(rs.getString(writer);bookinfo.setTranslator(rs.getString(translator);bookinfo.setPublisher(rs.getString(publisher);bookinfo.setDate(rs.getDate(date);bookinfo.setPrice(rs.getDouble(price);list.add(bookinfo);catch(Exception e)e.printStackTrace();编号
23、:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第9页 共101页第 9 页 共 101 页Dao.close();return list;/*修改图书信息方法*/更新图书信息public static int Updatebook(String ISBN,String typeId,Stringbookname,String writer,String translator,String publisher,Datedate,Double price)int i=0;tryString sql=update tb_bookInfo set
24、ISBN=+ISBN+,typeId=+typeId+,bookname=+bookname+,writer=+writer+,translator=+translator+,publisher=+publisher+,date=+date+,price=+price+where ISBN=+ISBN+;/System.out.println(sql);i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();Dao.close();return i;/*/*删除图书信息方法/*/public static int Delbo
25、ok(String ISBN)int i=0;tryString sql=delete from tb_bookInfo where ISBN=+ISBN+;/System.out.println(sql);i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();Dao.close();return i;/*对读者信息表执行的相关操作*/编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第10页 共101页第 10 页 共 101 页/增加读者信息public stat
26、ic int InsertReader(String name,String sex,Stringage,String identityCard,Date date,String maxNum,String tel,DoublekeepMoney,String zj,String zy,Date bztime,String ISBN)int i=0;tryString sql=insert intotb_reader(name,sex,age,identityCard,date,maxNum,tel,keepMoney,zj,zy,bztime,ISBN)values(+name+,+sex+
27、,+age+,+identityCard+,+date+,+maxNum+,+tel+,+keepMoney+,+zj+,+zy+,+bztime+,+ISBN+);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.
28、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(identityCard);reader.setDate(rs.getDate(date);reader.setMaxNum(rs.getSt
29、ring(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)编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作
30、舟页码:第11页 共101页第 11 页 共 101 页e.printStackTrace();Dao.close();return list;public static List selectReader(String readerISBN)List list=new ArrayList();String sql=select*from tb_reader whereISBN=+readerISBN+;ResultSet rs=Dao.executeQuery(sql);try while(rs.next()Reader reader=new Reader();reader.setName(
31、rs.getString(name);reader.setSex(rs.getString(sex);reader.setAge(rs.getString(age);reader.setIdentityCard(rs.getString(identityCard);reader.setDate(rs.getDate(date);reader.setMaxNum(rs.getString(maxNum);reader.setTel(rs.getString(tel);reader.setKeepMoney(rs.getDouble(keepMoney);reader.setZj(rs.getIn
32、t(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 name,Stringsex,String age,String identityCard,Date date,Stri
33、ng maxNum,Stringtel,Double keepMoney,String zj,String zy,Date bztime,String ISBN)int i=0;tryString sql=update tb_reader setname=+name+,sex=+sex+,age=+age+,identityCard=+identityCard+,date=+date+,maxNum=+maxNum+,tel=+tel+,keepMoney=+keepMoney+,zj=+zj+,zy=+zy+,bztime=+bztime+where编号:时间:2021 年 x 月 x 日书
34、山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第12页 共101页第 12 页 共 101 页ISBN=+ISBN+;i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();Dao.close();return i;/删除读者信息public static int DelReader(String ISBN)int i=0;tryString sql=delete from tb_reader where ISBN=+ISBN+;/System.out.println(sql);i=Dao.executeU
35、pdate(sql);catch(Exception e)e.printStackTrace();Dao.close();return i;/newpublic 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.set
36、Typeid(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();编
37、号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第13页 共101页第 13 页 共 101 页return list;/插入管理员插入管理员public static int Insertoperator(String name,String sex,intage,String identityCard,Date workdate,String tel,String password,intyajin)int i=0;tryString sql=insert intotb_operator(name,sex,age,identityCa
38、rd,workdate,tel,password,yajin)values(+name+,+sex+,+age+,+identityCard+,+workdate+,+tel+,+password+,+yajin+);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,
39、sex,age,yajin,workdate,tel,passwordfrom tb_operator where admin=0;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(r
40、s.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();编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第14页 共101页第 14 页 共 101 页Dao.close();return list;/删除用户public static int Deluser(int id)int
41、i=0;tryString sql=delete from tb_operator where id=+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,String sex,intage,String identityCard,Date workdate,String tel,String password)int i=0;
42、tryString sql=update tb_operator setname=+name+,sex=+sex+,age=+age+,identityCard=+identityCard+,workdate=+workdate+,tel=+tel+,password=+password+where id=+id+;i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();Dao.close();return i;public static int Updatepass(String password,String name)
43、int i=0;tryString sql=update tb_operator set password=+password+where name=+name+;i=Dao.executeUpdate(sql);catch(Exception e)e.printStackTrace();编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第15页 共101页第 15 页 共 101 页Dao.close();return i;Com.zhang.iframe:/窗体包窗体包BookAddIFrame.java/图书信息添加package
44、com.zhang.iframe;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.SystemColor;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;import
45、java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import .URL;import java.text.SimpleDateFormat;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.swing.DefaultComboBoxModel;import javax.swing.ImageIcon;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第16页 共1
46、01页第 16 页 共 101 页import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import
47、javax.swing.border.EmptyBorder;import javax.swing.border.LineBorder;import com.zhang.util.Item;import com.zhang.dao.Dao;import com.zhang.model.BookType;import com.zhang.util.MyDocument;import com.zhang.util.CreateIcon;/*名称:图书添加窗体*/public class BookAddIFrame extends JInternalFrame private JTextField
48、publisher;private JTextFieldprice;private JFormattedTextField pubDate;private JTextField translator;private JTextField writer;private JTextField ISBN;private JTextField bookName;private JComboBox bookType;private JButton buttonadd;private JButton buttonclose;DefaultComboBoxModel bookTypeModel;Map ma
49、p=new HashMap();public BookAddIFrame()super();final BorderLayout borderLayout=new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);/设置窗体可最小化必须setClosable(true);/设置窗体可关闭必须编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第17页 共101页第 17 页 共 101 页setTitle(图书信息添加);/设置窗体标题必
50、须setBounds(100,100,396,260);/设置窗体位置和大小必须final JPanel panel=new JPanel();panel.setBorder(new EmptyBorder(5,10,5,10);final GridLayout gridLayout=new GridLayout(0,4);gridLayout.setVgap(5);gridLayout.setHgap(5);panel.setLayout(gridLayout);getContentPane().add(panel);final JLabel label_2=new JLabel();lab