JAVA做的简单图书管理系统

合集下载

基于Java Web的图书管理系统的设计与实现

基于Java Web的图书管理系统的设计与实现

基于Java Web的图书管理系统的设计与实现随着信息技术的迅猛发展,图书管理系统在图书馆、图书商店等场所的应用越来越广泛。

基于Java Web的图书管理系统具有跨平台、易于维护和扩展等优势,已成为目前图书管理系统开发的主要技术选择。

本文将详细介绍基于Java Web的图书管理系统的设计与实现。

一、系统需求分析在进行图书管理系统的设计与实现之前,首先需要进行系统需求分析。

根据实际应用场景,我们将图书管理系统的主要功能模块分为以下几个方面:1. 图书管理:包括图书的录入、查询、修改和删除等功能。

管理员可以通过系统录入图书信息,并对图书信息进行增删改查操作,同时可以根据图书的分类、作者、出版社等条件进行高级查询。

2. 借阅管理:包括借书和还书的功能。

用户可以通过系统进行图书借阅,并在图书归还时办理还书手续。

在借阅过程中,系统需要实现图书的可借数量管理、借阅记录的生成以及逾期处理等功能。

3. 用户管理:包括用户的注册、登录和个人信息管理等功能。

用户可以通过系统注册账号,并使用账号进行登录和个人信息的管理,如修改密码、查看借阅记录等。

4. 权限管理:包括管理员和普通用户两种角色的权限管理。

管理员具有对系统的所有功能模块进行管理的权限,而普通用户只能进行图书查询和借阅等操作。

二、系统设计与实现经过系统需求分析,接下来将开始进行系统设计与实现。

1. 技术选型基于Java Web的图书管理系统,我们选择使用以下技术进行设计与实现:- 后端开发框架:Spring MVC- 前端UI框架:Bootstrap- 数据库:MySQL- 数据库访问框架:MyBatis- 前端页面交互:JavaScript、jQuery2. 数据库设计在实现图书管理系统之前,我们需要设计数据库表来存储图书信息、用户信息、借阅记录等数据。

下面是数据库表的设计:- 图书表(book):包含图书的编号、名称、作者、出版社、分类等字段。

- 用户表(user):包含用户的编号、账号、密码等字段。

基于Java的图书管理系统的设计与实现

基于Java的图书管理系统的设计与实现

基于Java的图书管理系统的设计与实现一、引言图书管理系统是一个用于管理图书信息的软件系统,它可以帮助图书馆或书店高效地管理图书的借阅、归还、查询等操作。

本文将介绍基于Java语言开发的图书管理系统的设计与实现过程,包括系统架构设计、功能模块划分、技术选型等方面。

二、系统架构设计1. 概述图书管理系统主要包括前台用户界面、后台管理界面和数据库三个部分。

前台用户界面用于读者进行图书查询、借阅等操作,后台管理界面用于管理员对图书信息进行管理,数据库用于存储图书信息。

2. 架构设计采用MVC(Model-View-Controller)架构模式,将系统分为模型层、视图层和控制层。

模型层负责数据的存取操作,视图层负责展示数据给用户,控制层负责接收用户输入并调用相应的模型进行处理。

三、功能模块划分1. 用户模块用户注册:读者可以通过注册账号来使用系统。

用户登录:已注册用户可以通过账号密码登录系统。

用户信息管理:用户可以查看和修改个人信息。

2. 图书管理模块图书查询:用户可以根据关键字搜索图书信息。

图书借阅:用户可以借阅所需图书。

图书归还:用户可以归还已借阅的图书。

3. 管理员模块管理员登录:管理员通过账号密码登录后台管理系统。

图书添加:管理员可以添加新的图书信息。

图书删除:管理员可以删除不需要的图书信息。

四、技术选型1. 后端技术Java语言:作为主要开发语言,具有跨平台性和稳定性。

Spring框架:提供了依赖注入和面向切面编程等功能。

MyBatis框架:用于数据库操作,提供了方便的ORM映射功能。

2. 前端技术HTML/CSS/JavaScript:用于前端页面的布局和交互效果。

Bootstrap框架:提供了响应式布局和丰富的UI组件。

3. 数据库MySQL数据库:作为数据存储介质,支持高并发和事务处理。

五、系统实现步骤搭建开发环境:安装JDK、Eclipse/IntelliJ IDEA等开发工具。

创建项目结构:按照MVC架构设计创建相应的包和类。

基于 java 的图书馆管理系统

基于 java 的图书馆管理系统

目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2 需求分析 (1)2.1 功能需求 (1)2.2 系统的开发运行环境 (2)3.1 系统体系结构设计 (2)3.2系统功能模块及主要类设计 (3)3.3数据库设计 (5)3 详细设计与实现 (7)4.1 登录模块 (7)4.2 程序主界面模块 (9)4.3 数据库连接模块 (10)4.4 数据结果集处理模块 (12)4 小结和展望 (14)参考文献 (14)附录 (15)1引言1.1课程设计选题1、《图书馆管理系统(c/s)》。

2、图书基本信息包括条码号、图书ISBN号、索书号、书名、作者、出版社和简介。

此外还包括图书类型表。

3、读者基本信息包括条码号、读者编号、姓名、性别、出生日期、图书借阅次数、期刊借阅次数。

此外还包括读者类型表。

4、图书流通信息包括图书借阅、图书归还、图书征订、图书罚款、图书清单。

5、设计一个软件能够实现这些信息的录入修改;可以完成图书查询;使用表格控件JTable来显示图书信息。

1.2课程设计的目的使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。

1.3本选题的设计背景1、图书馆作为一种信息资源集散地,图书和用户借阅资料繁多,包含很多信息数据的管理。

2、图书馆管理系统是图书馆的重要组成部分。

2需求分析2.1 功能需求1、从系统功能上主要分为三大部分:读者管理、图书管理、流通管理。

(1)用户端需要完成以下功能:①查询图书②预约图书③挂失图书④图书征订(2)管理员端需要完成以下功能:①学生用户管理:实现对学生用户信息的增、删、改、查。

②图书管理:包括图书的增、删、改等。

③管理员管理:操作者包括超级管理员和普通管理员,超级管理员可对任意管理员进行增、删、改、查,而普通管理员只有修改自己密码的权限。

javaswing图书管理系统实报告

javaswing图书管理系统实报告

四、实验方法和步骤
实验方法:
1、本系统是基于Java Swing+MySQL实现的图书管理系统。

2、采用Java Swing作为UI界面
3、MySQL数据库作为存储
4、JDBC原生方法操作
(封装了公共的增删改查方法,见src.model.access.Connect.java)
5、采用MVC模式分为Model层、View层、Controller层
6、采用了MD5进行密码加密
实验步骤:
1、需求分析
2、概念结构,绘制E-R图
3、逻辑结构设计:将E-R图转化为等价的关系模式
4、物理结构设计:数据库表的基本结构
5、功能实现
五、实验结果(截图)
1、登录界面
2、普通用户登录界面
3、管理员登录界面
4用户界面功能分别是
图书查询借阅、借阅归还信息、个人信息管理4.1借阅
4.3查询
4.4借阅信息
4.5归还
4.6个人信息管理4.7修改个人信息
4.8修改密码
5.登录界面功能5.1注册功能
6.忘记密码功能
7.管理端功能
图书信息管理、图书种类管理、读者类型管理、图书借阅信息、超级用户7.1界面
7.2添加图书
7.3删除图书
7.4修改图书
7.5图书类型管理7.6读者信息管理历史借阅信息
7.7超级管理员界面修改个人信息
修改个人密码
7.8超级管理员验证查询管理员信息
新增管理员
删除管理员
修改该管理员信息。

Java图书管理系统设计报告

Java图书管理系统设计报告

Java图书管理系统设计报告简介Java图书管理系统是一款用于管理图书馆借阅业务的应用程序。

该系统旨在简化图书馆的图书借阅和归还流程,提高图书馆的运作效率。

本文将对Java图书管理系统的设计进行详细介绍。

功能需求Java图书管理系统需要满足以下功能需求: 1. 用户注册和登录:用户可以注册新账号并通过账号密码登录系统。

2. 图书查询和展示:用户可以通过关键词搜索图书,并查看图书的详细信息和可借数量。

3. 图书借阅和归还:用户可以借阅图书,系统将相应图书的可借数量减少;用户还书时,系统将相应图书的可借数量增加。

4. 图书推荐:系统可以根据用户的借阅记录和兴趣,推荐适合用户的图书。

5. 借阅历史查询:用户可以查看自己的借阅历史记录。

系统设计数据库设计系统需要设计以下表格来存储数据: - 用户表(User):存储用户的账号、密码、姓名等信息。

- 图书表(Book):存储图书的信息,包括图书名称、作者、数量等。

- 借阅表(Borrow):存储用户的借阅记录,包括用户ID、图书ID、借阅日期等信息。

系统架构Java图书管理系统采用分层架构,包括以下几个层次: 1. 表现层(Presentation Layer):负责与用户进行交互,接收用户的输入和显示系统的输出。

2. 业务逻辑层(Business Logic Layer):处理具体的业务逻辑,例如用户登录、图书管理、借阅归还等。

3. 数据访问层(Data Access Layer):负责与数据库进行交互,包括插入、查询和更新数据的操作。

类设计系统设计需要定义以下几个类: 1. User类:表示用户,包括用户的账号、密码、姓名等属性。

2. Book类:表示图书,包括图书的名称、作者、数量等属性。

3. Borrow类:表示借阅记录,包括用户ID、图书ID、借阅日期等属性。

4. UserService类:处理与用户相关的逻辑,例如用户注册、登录等。

java实训报告--图书管理系统

java实训报告--图书管理系统

java实训报告--图书管理系统一、项目介绍本项目是一个基于Java的图书管理系统,主要包括图书类别管理、图书信息管理、读者信息管理以及借阅和归还管理等模块。

实现了对图书馆资源的有效管理,提高了图书馆工作效率,满足了读者的需求。

二、需求分析1.用户权限分级实现用户登陆验证,分为管理员和普通用户两类,管理员有图书信息、读者信息、借阅还书和系统管理四种权限,普通用户只有查询和借还书的权限。

2.图书管理管理员可以对图书进行分类管理、添加书目、查看书目、修改和删除图书信息等操作。

3.读者管理管理员可以对读者进行添加、查看、修改和删除读者信息等操作。

普通用户只能查询自己的借书信息和还书日期。

4.借阅还书管理管理员可以对图书的借阅还书进行处理和管理,包括借书和还书操作,超期处理以及还书日期提醒等。

5.系统管理管理员可以对图书馆系统进行管理,包括用户管理、修改密码等操作。

三、设计实现1.数据库设计采用MySQL数据库进行数据存储,主要包括用户表、图书分类表、图书信息表、读者信息表、借阅信息表等。

2.界面设计采用Swing框架实现界面设计,UI界面简洁美观,与用户交互友好。

3.代码实现代码主要采用Java语言实现,采用MVC模式,将业务和UI 进行分离,提高了灵活性和可维护性。

四、实现效果本系统实现了对图书馆资源的有效管理,对管理员可以方便地进行操作,对普通用户可以快速方便地查询和借阅图书。

五、总结通过该项目的实现,使我深入学习了Java语言的面向对象编程、MVC模式、MySQL数据库的使用、Swing界面设计等技术,并深刻体会到了软件开发的需求分析、系统设计、编码实现、测试等基本流程。

同时,也感受到了信息化技术在实际工作中所带来的效率和便捷。

图书馆管理系统(JavaWeb)

图书馆管理系统(JavaWeb)

图书馆管理系统(JavaWeb)图书馆管理系统(Java Web)概述基于Spring + Spring MVC + MyBatis的图书馆管理系统,使⽤Maven进⾏包管理。

主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还⽇志记录等。

项⽬演⽰<——点击跳转<——点击跳转<——点击跳转<——点击跳转环境配置需要提前配置好Maven环境,数据库为MySql,在src/main/resources/db.properties中修改MySql⽤户名和密码。

数据库脚本在library.sql中,可⾃动建库。

使⽤mvn jetty:run可快速搭建。

特别注意:如果要搭⼊服务器中使⽤,⽤tomcat跑需要将项⽬打包⼊tomcat中的root⽂件夹使⽤,因为项⽬设计时,⽤的jetty,所有jsp⽂件路径写的都是相对路径。

概念设计⽤户分为两类:读者、图书馆管理员。

图书馆管理员可以修改读者信息,修改书⽬信息,查看所有借还⽇志等;读者仅可以修改个⼈信息、借阅或归还书籍和查看⾃⼰的借还⽇志。

数据库E-R图逻辑设计共有6个表:1. 图书书⽬表book_info名类型长度⼩数点NULL⽤途键book_id bigint200否图书号✔name varchar200否书名author varchar150否作者publish varchar200否出版社ISBN varchar150否标准书号introduction text00是简介language varchar40否语⾔price decimal102否价格pub_date date00否出版时间class_id int110是分类号number int110是剩余数量2. 数据库管理员表admin名类型长度⼩数点NULL⽤途键admin_id bigint200否账号✔password varchar150否密码username varchar150是⽤户名3. 图书分类表class_info名类型长度⼩数点NULL⽤途键class_id int110否类别号✔class_name varchar150否类别名4. 借阅信息表lend_list名类型长度⼩数点NULL⽤途键ser_num bigint200否流⽔号✔book_id bigint200否图书号reader_id bigint200否读者证号lend_date date00是借出⽇期back_date date00是归还⽇期5. 借阅卡信息表reader_card名类型长度⼩数点NULL⽤途键reader_id bigint200否读者证号✔password varchar150否密码username varchar150是⽤户名6. 读者信息表reader_info名类型长度⼩数点NULL⽤途键reader_id bigint200否读者证号✔name varchar100否姓名sex varchar20否性别birth date00否⽣⽇address varchar500否地址phone varchar150否电话功能展⽰1. ⾸页登陆管理者账号:123456/123456(见数据库admin表)读者账号:10000/123456()见数据库reader_card表2. 管理员系统⽤登陆进⼊2.1 图书管理2.2 图书详情2.3 读者管理2.4 借还管理3. 读者系统3.1 查看全部图书3.2 个⼈信息查看,可以修个个⼈信息3.3 个⼈借阅情况查看。

javase综合案例

javase综合案例

javase综合案例综合案例:图书管理系统一、引言图书管理系统是一种用于管理与存储图书信息的软件系统。

该系统可以实现对图书的借阅、归还、续借、借阅记录查询等功能,方便图书馆管理人员进行图书管理工作。

本文将介绍一个基于JavaSE的图书管理系统的设计与实现。

二、需求分析1. 系统应具备管理员和读者两种角色,管理员可以进行图书管理操作,读者可以进行借阅和归还操作。

2. 系统应提供图书的添加、删除、修改和查询功能,管理员可通过图书的书名、作者等信息快速检索图书。

3. 系统应提供读者的注册、注销和查询功能,读者可以通过借阅号和密码登录系统。

4. 系统应记录借阅记录,包括借阅日期、归还日期和借阅状态等信息。

5. 系统应提供图书的借阅、归还和续借功能,借阅时应检查图书库存和读者的借书上限。

6. 系统应提供借阅记录的查询功能,管理员可按照读者或图书进行查询。

7. 系统应具备良好的用户界面,方便操作和使用。

三、系统设计根据需求分析,系统的核心功能包括图书管理、读者管理和借阅管理。

因此,可以设计三个核心类:Book、Reader和BorrowRecord。

1. Book类Book类用于存储图书信息,包括书名、作者、出版社、出版日期、图书编号和库存数量等属性。

该类还提供图书的添加、删除和修改方法,以及根据书名、作者等信息进行查询的方法。

2. Reader类Reader类用于存储读者信息,包括借阅号、姓名、性别、年龄和借书上限等属性。

该类还提供读者的注册、注销和查询方法,以及读者登录系统的方法。

3. BorrowRecord类BorrowRecord类用于存储借阅记录,包括借阅日期、归还日期、借阅状态、借阅图书和借阅读者等属性。

该类还提供借书、还书和续借的方法,以及查询借阅记录的方法。

四、系统实现根据系统设计,可以编写相关的Java类文件来实现图书管理系统。

以下是部分代码示例:Book.java:```javapublic class Book {private String name;private String author;private String publisher;private String publicationDate;private int stock;// 构造方法// 添加图书public void addBook() {// 添加图书逻辑}// 删除图书public void deleteBook() {// 删除图书逻辑}// 修改图书public void modifyBook() {// 修改图书逻辑}// 根据书名和作者查询图书public void searchBook(String name, String author) { // 查询图书逻辑}}Reader.java:```javapublic class Reader {private String name;private String gender;private int age;private int borrowLimit;// 构造方法// 注册读者public void register() {// 注册逻辑}// 注销读者public void cancel() {// 注销逻辑}// 查询读者信息public void searchReader() {// 查询读者逻辑}// 读者登录public void login(String borrowId, String password) { // 登录逻辑}}BorrowRecord.java:```javapublic class BorrowRecord {private Date borrowDate;private Date returnDate;private boolean borrowStatus;private Book book;private Reader reader;// 构造方法// 借书public void borrow(Book book, Reader reader) {// 借书逻辑}// 还书public void returnBook(Book book, Reader reader) { // 还书逻辑}// 续借public void renew(Book book, Reader reader) {// 续借逻辑}// 查询借阅记录public void searchRecord(Book book, Reader reader) { // 查询记录逻辑}}```以上仅为图书管理系统的基本功能和类的设计示例,实际开发中还需进一步完善和优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package Tools;import java.sql.*;import org.junit.Test;public class ConnDB{Connection con;Statement stmt=null;ResultSet rs=null;String driverName="com.mysql.jdbc.Driver";//驱动程序名String user="root";//MySQL 配置时的用户名String password="root";//MySQL配置时的密码String url="jdbc:mysql://localhost:3306/library";//URL指向要访问的数据库地址///连接数据库public ConnDB(){try{Class.forName(driverName);//加载数据库程序con=DriverManager.getConnection(url,user,password);//使用getConnection()方法,连接MySQL数据库!!if(!con.isClosed()){System.out.println("连接成功~!");}else{System.out.println("连接失败~!");}}catch(Exception e){System.err.println(e.getMessage());}}//执行SQL查询,并返回查询结果集public ResultSet select(String sql){try{Class.forName(driverName);con=DriverManager.getConnection(url,user,password);stmt=con.createStatement();rs=stmt.executeQuery(sql);}catch(Exception e){System.err.println(e.getMessage());}return rs;}@Testpublic void testSelect(){}/*执行SQL更新,并返回影响到的记录条数*/public int update(String sql){int rs=0;try{Class.forName(driverName);con=DriverManager.getConnection(url,user,password);stmt=con.createStatement();rs=stmt.executeUpdate(sql);}catch(Exception e){System.err.println(e.getMessage());}return rs;}public void testupdate(){}public static void main(String[]args){new ConnDB();}}package Library.Management.System;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import javax.swing.text.JTextComponent;import Tools.ConnDB;public class addInterface implements ActionListener{JFrame frame;JPanel p1,p2,p3;JLabel l1,l2,l3,l4;JTextField t1,t2,t3,t4;JButton last,next,enter,cancel,delete; public addInterface(){frame=new JFrame("增加/修改");l1=new JLabel("图书编号");t1=new JTextField(10);l2=new JLabel("书本名称");t2=new JTextField(10);l3=new JLabel("定价");t3=new JTextField(10);l4=new JLabel("出版社");t4=new JTextField(10);p1=new JPanel();p1.add(l1);p1.add(t1);p1.add(l2);p1.add(t2);p2=new JPanel();p2.add(l3);p2.add(t3);p2.add(l4);p2.add(t4);p3=new JPanel();last=new JButton("上一条");next=new JButton("下一条");enter=new JButton("确认");delete=new JButton("删除");cancel=new JButton("取消");p3.add(last);p3.add(next);p3.add(enter);p3.add(cancel);p3.add(delete);enter.addActionListener(this);cancel.addActionListener(this);frame.add(BorderLayout.NORTH,p1);frame.add(BorderLayout.CENTER,p2);frame.add(BorderLayout.SOUTH,p3);frame.setVisible(true);frame.setSize(500,150);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}/*public static void main(String[]args){new addInterface();}*/@Overridepublic void actionPerformed(ActionEvent e){//TODO Auto-generated method stubif(e.getSource()==cancel){frame.dispose();}if(e.getSource()==enter){ConnDB c=new ConnDB();String sql="insert library values('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"')";@SuppressWarnings("unused")int rs=c.update(sql);String[]rowValues={t1.getText(),t2.getText(),t3.getText(),t4.getText()};InterfaceMain.tablemodel.addRow(rowValues);}}}package Library.Management.System;//import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import javax.swing.*;import Tools.ConnDB;public class selInterface implements ActionListener{ JFrame frame;JPanel p1,p2,p3,p4,p5,p6;JLabel l1,l2,l3;JRadioButton bh,mc,cbs;ButtonGroup g;JTextField t1,t2,t3;JButton enter,cancel;JTextArea jt;JScrollPane scrollPane;public selInterface(){frame=new JFrame("查询");bh=new JRadioButton();bh.addActionListener(this);l1=new JLabel("图书编号");t1=new JTextField(10);mc=new JRadioButton();mc.addActionListener(this);l2=new JLabel("书本名称");t2=new JTextField(10);cbs=new JRadioButton();cbs.addActionListener(this);l3=new JLabel("出版社");t3=new JTextField(10);t1.setEditable(false);t2.setEditable(false);t3.setEditable(false);g=new ButtonGroup();g.add(bh);g.add(mc);g.add(cbs);p1=new JPanel();p1.add(bh);p1.add(l1);p1.add(t1);p2=new JPanel();p2.add(mc);p2.add(l2);p2.add(t2);p3=new JPanel();p3.add(cbs);p3.add(l3);p3.add(t3);p4=new JPanel();enter=new JButton("确定");cancel=new JButton("取消");enter.addActionListener(this);cancel.addActionListener(this);p4.add(enter);p4.add(cancel);p5=new JPanel();jt=new JTextArea(10,20);jt.setEditable(false);scrollPane=new JScrollPane(jt);p5.add(scrollPane);p6=new JPanel();//p6.setLayout(new GridLayout(5,1));p6.add(p1);p6.add(p2);p6.add(p3);p6.add(p5);p6.add(p4);frame.add(p6);frame.setVisible(true);frame.setSize(350,400);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }public static void main(String[]args){new selInterface();}@Overridepublic void actionPerformed(ActionEvent e){//TODO Auto-generated method stubif(bh.isSelected()){t1.setEditable(true);t2.setEditable(false);t3.setEditable(false);}if(mc.isSelected()){t1.setEditable(false);t2.setEditable(true);t3.setEditable(false);}if(cbs.isSelected()){t1.setEditable(false);t2.setEditable(false);t3.setEditable(true);}if(e.getSource()==enter){String sql=null;ConnDB con=new ConnDB();sql="SELECT*FROM library where图书编号='"+t1.getText()+"'or书本名称='"+t2.getText()+"'or'"+t3.getText()+"'=出版社";ResultSet rs=con.select(sql);String[]tempData=new String[4];try{while(rs.next()){for(int i=0;i<4;i++){tempData[i]=rs.getString(i+1);jt.append(tempData[i]+"");}jt.append("\n");}}catch(Exception e2){//TODO:handle exception}}if(e.getSource()==cancel){frame.dispose();}}}package Library.Management.System;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.Vector;import javax.swing.*;import javax.swing.table.DefaultTableModel;import Tools.ConnDB;public class InterfaceMain implements ActionListener{JFrame frame;JPanel p1,p2,p3;JButton add,sel,del,exit;JTable table;static DefaultTableModel tablemodel;JScrollPane scrollPane;Connection con;public InterfaceMain(){//主界面和四个按钮还有监控按钮(北部)frame=new JFrame("图书管理系统");p1=new JPanel();add=new JButton("增加");sel=new JButton("查询");del=new JButton("删除");exit=new JButton("退出");p1.add(add);p1.add(sel);p1.add(del);p1.add(exit);add.addActionListener(this);sel.addActionListener(this);del.addActionListener(this);exit.addActionListener(this);//分割线(中部)p2=new JPanel();JSeparator js=new JSeparator();js.setPreferredSize(new Dimension(1000,1));p2.add(js);//表格columnName是第一列的列名tableValues是表格内容(南部)Vector<String>columnName=new Vector<String>();columnName.add("图书编号");columnName.add("书名");columnName.add("定价");columnName.add("出版社");Vector<Vector<String>>tableValue=new Vector<Vector<String>>(); ConnDB c=new ConnDB();String sql="SELECT*FROM library";ResultSet rs=c.select(sql);try{while(rs.next()){Vector<String>row=new Vector<String>();String[]data=new String[4];for(int i=0;i<4;i++){data[i]=rs.getString(i+1);//System.out.println(data[i]);row.add(data[i]);}tableValue.add(row);}}catch(Exception e){//TODO:handle exception}tablemodel=new DefaultTableModel(tableValue,columnName); table=new JTable(tablemodel);table.addMouseListener(new MouseListener(){@Overridepublic void mouseClicked(MouseEvent e){int row=table.getSelectedRow();@SuppressWarnings("unused")Object o=tablemodel.getValueAt(row,0);}@Overridepublic void mousePressed(MouseEvent e){}@Overridepublic void mouseReleased(MouseEvent e){}@Overridepublic void mouseEntered(MouseEvent e){}@Overridepublic void mouseExited(MouseEvent e){}});scrollPane=new JScrollPane(table);p3=new JPanel();p3.add(scrollPane);//设置整体面板属性frame.add(BorderLayout.NORTH,p1);frame.add(BorderLayout.CENTER,p2);frame.add(BorderLayout.SOUTH,p3);frame.setVisible(true);frame.setSize(500,500);frame.setResizable(false);frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}//主方法public static void main(String[]args){new InterfaceMain();}//四个按钮的时间处理@Overridepublic void actionPerformed(ActionEvent e){//TODO Auto-generated method stubif(e.getSource()==add){new addInterface();}if(e.getSource()==sel){new selInterface();}if(e.getSource()==del){int n=JOptionPane.showConfirmDialog(null,"是否删除?","注意!!!",JOptionPane.YES_NO_OPTION);System.out.println(n);if(n==0){int row=table.getSelectedRow();Object bh=tablemodel.getValueAt(row,0);ConnDB con=new ConnDB();String sql="Delete FROM library where图书编号="+bh;con.update(sql);tablemodel.removeRow(table.getSelectedRow());}else{System.out.println("取消");}}if(e.getSource()==exit){System.exit(0);}}}package Library.Management.System;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import javax.swing.text.JTextComponent;import Tools.ConnDB;public class addInterface implements ActionListener{ JFrame frame;JPanel p1,p2,p3;JLabel l1,l2,l3,l4;JTextField t1,t2,t3,t4;JButton last,next,enter,cancel,delete;public addInterface(){frame=new JFrame("增加/修改");l1=new JLabel("图书编号");t1=new JTextField(10);l2=new JLabel("书本名称");t2=new JTextField(10);l3=new JLabel("定价");t3=new JTextField(10);l4=new JLabel("出版社");t4=new JTextField(10);p1=new JPanel();p1.add(l1);p1.add(t1);p1.add(l2);p1.add(t2);p2=new JPanel();p2.add(l3);p2.add(t3);p2.add(l4);p2.add(t4);p3=new JPanel();last=new JButton("上一条");next=new JButton("下一条");enter=new JButton("确认");delete=new JButton("删除");cancel=new JButton("取消");p3.add(last);p3.add(next);p3.add(enter);p3.add(cancel);p3.add(delete);enter.addActionListener(this);cancel.addActionListener(this);frame.add(BorderLayout.NORTH,p1);frame.add(BorderLayout.CENTER,p2);frame.add(BorderLayout.SOUTH,p3);frame.setVisible(true);frame.setSize(500,150);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }/*public static void main(String[]args){new addInterface();}*/@Overridepublic void actionPerformed(ActionEvent e){//TODO Auto-generated method stubif(e.getSource()==cancel){frame.dispose();}if(e.getSource()==enter){ConnDB c=new ConnDB();String sql="insert library values('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"')";@SuppressWarnings("unused")int rs=c.update(sql);String[]rowValues={t1.getText(),t2.getText(),t3.getText(),t4.getText()};InterfaceMain.tablemodel.addRow(rowValues);}}}。

相关文档
最新文档