Java+MySQL+Swing实现
一、功能
- 管理员登录、改密码、资料等
- 有超级权限的账号能管理其他管理员
- 图书信息的增删改查
- 能对读者的信息进行管理
- 借阅管理
- 退出登录
二、相关技术及开发环境
- Eclipse 2019(4.12.0)
- JDK8
- mysql-connector-java-5.1.47
- beautyeye_lnf
- Java Swing
- MySQL5.7
四、数据库设计
- 创建数据库
CREATE DATABASE library_system;
- 管理员表
use library_system;
create table Administrator(
AdminID int not null,
AdminName char(10) not null,
Account varchar(6) not null primary key,
Password varchar(32) not null,
ifsuper boolean not null
)default charset=utf8;
- 图书信息表
use library_system;
create table Books_Info(
BookName varchar(30) not null comment '书名' ,
SumQuantity int not null comment '总册数' ,
Quantity int not null comment '剩余册数' ,
LendTime int not null comment '借出次数',
BookID varchar(30) not null primary key comment '书刊编号' ,
BookBarcode varchar(30) not null comment '书刊条码',
BookClassify varchar(20) comment '书刊分类',
BookThem varchar(30) comment '主题词',
Author varchar(40) comment '作者' ,
Publisher varchar(20) comment '出版社' ,
PublishTime varchar(10) comment '出版版次',
PublishDate date comment '出版日期' ,
BookType varchar(10) comment '馆藏分类',
Stack varchar(20) not null comment '所在书室' ,
BookShelf varchar(20) not null comment '所在书架' ,
Price float comment '价格' ,
ContentText varchar(300) comment '简介',
Remark varchar(100) comment '备注' ,
BookPage int comment '页数' ,
WordsNumber varchar(20) comment '字数'
)default charset=utf8 comment '图书信息表';
- 读者信息表
use library_system;
create table Reader(
ReaderID varchar(20) not null primary key comment '学号' ,
ReaderName char(30) not null comment '姓名' ,
Apart char(10) comment '学院' ,
Sex char(2) default '男' check (Sex in ('男','女')),
Class char(10) comment '班级' ,
TelNo char(20) comment '电话'
)default charset=utf8;
视图层主要是JavaSwing类,给用户提供交互界面;
监听层主要是按钮点击事件的监听,主要接受用户的请求;
服务层主要是处理各种业务请求,把的得到的结果显示在视图层上;
数据层主要负责数据的查询修改等,提供给服务层使用;
主要代码分析和使用
下面的DBUtil类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
* DBUtils是java编程中的数据库操作实用工具,小巧简单实用,
* 1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作;
* 2.对于数据表的写操作,也变得很简单(只需写sql语句)
* @author minuy
*
*/
public abstract class DBUtil {
//声明连接数据库所需要的相关信息
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/library_system?useUnicode=true&characterEncoding=UTF-8";
private static String userName = "root";
private static String passWord = "YourPassword";
//单例化模式
private DBUtil() {
}
//静态的方式加载JDBC驱动
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 返回一个数据库链接
* @return
*/
public static Connection getConn() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, userName,passWord);
} catch (SQLException e) {
System.out.println("数据库连接失败!");
JOptionPane.showMessageDialog(null, "服务器连接失败");
e.printStackTrace();
}
// new Thread(){
// public void run(){
// try {
// Connection con = DriverManager.getConnection(connectString, sql_user, sql_pwd);
// con.close();
// } catch (SQLException e) { //连接失败
// e.printStackTrace();
// }
// }
// }.start();