图书馆管理系统,具体功能包括:
1. 用户登录
2. 用户注册
3. 新图书入库
4. 图书信息查询
5. 图书更新(修改)
6. 旧图书删除
7. 办理借阅证登记
8. 图书借阅管理
完整项目:https://download.csdn.net/download/sger123/12887202

//数据库连接    MySQL:8.0.14
public class DBConnection {public static final String DRIVER ="com.mysql.cj.jdbc.Driver";public static final String URL="jdbc:mysql://localhost:3306/library_management_system?serverTimezone=GMT%2B8";//library_management_system 是自己创建的数据库名字// public static final String URL="jdbc:mysql://localhost:3306/library_management_system";mysql5.0的public static final String USER="root";public static final String PASSWORD="123456";Connection conn =null;public DBConnection(){try{Class.forName(DRIVER);}catch (ClassNotFoundException e) {e.printStackTrace();}try{conn= DriverManager.getConnection(URL,USER,PASSWORD);}catch (SQLException e) {e.printStackTrace();}}public Connection getConnection(){return this.conn;}public void close(){if(this.conn!=null){try{this.conn.close();} catch (SQLException e) {e.printStackTrace();}}}}

管理员表

图书表

读者表

借阅表

借阅表的外键关系

javaBean

//图书类
public class Book {private int book_id;          //图书编号private String book_name;      //书名private String book_author;   //作者private String book_press;   //出版社public Book(int book_id, String book_name, String book_author, String book_press) {this.book_id = book_id;this.book_name = book_name;this.book_author = book_author;this.book_press = book_press;}public int getBook_id() {return book_id;}public void setBook_id(int book_id) {this.book_id = book_id;}public String getBook_name() {return book_name;}public void setBook_name(String book_name) {this.book_name = book_name;}public String getBook_author() {return book_author;}public void setBook_author(String book_author) {this.book_author = book_author;}public String getBook_press() {return book_press;}public void setBook_press(String book_press) {this.book_press = book_press;}
//读者类
public class User {private int user_id;   //借阅证private String  user_name;private int user_age;private String user_sex;private String user_phone;public User(int user_id, String user_name, int user_age, String user_sex, String user_phone) {this.user_id = user_id;this.user_name = user_name;this.user_age = user_age;this.user_sex = user_sex;this.user_phone = user_phone;}public int getUser_id() {return user_id;}public void setUser_id(int user_id) {this.user_id = user_id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public int getUser_age() {return user_age;}public void setUser_age(int user_age) {this.user_age = user_age;}public String getUser_sex() {return user_sex;}public void setUser_sex(String user_sex) {this.user_sex = user_sex;}public String getUser_phone() {return user_phone;}public void setUser_phone(String user_phone) {this.user_phone = user_phone;}
}
//借阅类
public class Borrow {private  int user_id;private int book_id;public Borrow(int user_id, int book_id) {this.user_id = user_id;this.book_id = book_id;}public int getUser_id() {return user_id;}public void setUser_id(int user_id) {this.user_id = user_id;}public int getBook_id() {return book_id;}public void setBook_id(int book_id) {this.book_id = book_id;}
}

DBDao类

public class DBDao {private DBConnection dbConnection = null;private Connection conn = null;/* private static String username;private static String password;*/static Scanner input = new Scanner(System.in);public DBDao() {this.dbConnection =new DBConnection();this.conn = dbConnection.getConnection();}//管理员登陆public boolean denglu(){System.out.println("----管理员登录----");System.out.println("输入用户名:");String adminName=input.next();System.out.println("输入密码:");String adminPwd=input.next();String sql="SELECT ADMIN_NAME,ADMIN_PWD FROM ADMIN WHERE ADMIN_NAME=? AND ADMIN_PWD=?";PreparedStatement ptmt= null;try {ptmt = conn.prepareStatement(sql);ptmt.setString(1, adminName);ptmt.setString(2, adminPwd);ResultSet rs=ptmt.executeQuery();if (rs.next()) {System.out.println("登录成功!");return true;} else {System.out.println("账号或密码不正确,请重新登录!\n");return false;}} catch (SQLException e) {e.printStackTrace();}return false;}//管理员注册public boolean zhuce(){System.out.println("----管理员注册----");System.out.println("输入用户名:");String adminName=input.next();System.out.println("输入密码:");String adminPwd1=input.next();System.out.println("再次确认密码");String adminPwd2=input.next();if(adminPwd1.equals(adminPwd2)){String password=adminPwd1;String sql="INSERT INTO ADMIN(ADMIN_NAME,ADMIN_PWD) VALUES(?,?)";PreparedStatement ptmt= null;try {ptmt = conn.prepareStatement(sql);ptmt.setString(1, adminName);ptmt.setString(2, password);ptmt.execute();System.out.println("注册成功!");return true;} catch (SQLException e) {e.printStackTrace();}}else{System.out.println("你输入的两次密码不一致,请重新注册!");return false;}return false;}//新图书入库public boolean insertBook(Book book){boolean flag = false;PreparedStatement pstmt = null;String sql = "insert into book(book_id,book_name,book_author,book_press) values(?,?,?,?)";try {pstmt = conn.prepareStatement(sql); //模糊查询pstmt.setInt(1, book.getBook_id());pstmt.setString(2,book.getBook_name());pstmt.setString(3, book.getBook_author());pstmt.setString(4,book.getBook_press());if (pstmt.executeUpdate() > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//查询所有图书信息public boolean bookInof(){Statement stmt =null;String sql="select * from book";try{stmt=conn.createStatement();//执行查询数据库的SQL语句   ,返回一个结果集(ResultSet)对象。ResultSet Book = stmt.executeQuery(sql);System.out.println("图书编号"+"   书名"+"                               " +"作者"+"                  出版社");while(Book.next()){ //如果对象中有数据,就会循环打印出来System.out.printf("%-10s",Book.getString("book_id"));System.out.printf("%-30s",Book.getString("book_name"));System.out.printf("%-20s",Book.getString("book_author"));System.out.printf("%-20s\n",Book.getString("book_press"));}}catch (SQLException e) {e.printStackTrace();} finally {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}return true;}//查询该图书编号图书信息public  boolean searchBook(int id){PreparedStatement pstmt=null;String sql="SELECT book_id,book_name,book_author,book_press FROM book WHERE book_id=?";try{pstmt=conn.prepareStatement(sql);pstmt.setInt(1, id);ResultSet rs=pstmt.executeQuery();while(rs.next()){System.out.println("图书编号:"+rs.getInt(1)+"\t"+"书名:"+rs.getString(2)+"\t"+"图书作者:"+rs.getString(3)+"\t"+"出版社:"+rs.getString(4));}}catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return true;}//用图书编号修改图书信息public boolean bookUpdate(int id,Book book){boolean flag=false;PreparedStatement pstmt = null;String sql="UPDATE book SET book_name=?,book_author=?,book_press=? WHERE book_id=?";try{pstmt=conn.prepareStatement(sql);pstmt.setString(1, book.getBook_name());pstmt.setString(2, book.getBook_author());pstmt.setString(3, book.getBook_press());pstmt.setInt(4, book.getBook_id());if (pstmt.executeUpdate() > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//按编号删除旧图书public boolean delelteBook(int id){boolean flag=false;PreparedStatement pstmt=null;String sql="DELETE FROM book WHERE book_id=?";try{pstmt=conn.prepareStatement(sql);pstmt.setInt(1, id);     //接收id传入sql语句if (pstmt.executeUpdate() > 0) {        // 至少已经更新了一行flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//办理借阅证public boolean  loanCard(User user){boolean flag = false;PreparedStatement pstmt = null;String sql = "insert into user(user_id,user_name,user_age,user_sex,user_phone) values(?,?,?,?,?)";try {pstmt = conn.prepareStatement(sql); //模糊查询pstmt.setInt(1, user.getUser_id());pstmt.setString(2, user.getUser_name());pstmt.setInt(3, user.getUser_age());pstmt.setString(4, String.valueOf(user.getUser_sex()));pstmt.setString(5, user.getUser_phone());if (pstmt.executeUpdate() > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//用借书证搜索读者public boolean searchUser(int id){PreparedStatement pstmt=null;String sql="SELECT user_id,user_name,user_age,user_sex,user_phone FROM user WHERE user_id=?";try{pstmt=conn.prepareStatement(sql);pstmt.setInt(1, id);ResultSet rs=pstmt.executeQuery();while(rs.next()){System.out.println("读者借书证号:"+rs.getInt(1)+"\t"+"读者姓名:"+rs.getString(2)+"\t"+"读者年龄:"+rs.getString(3)+"\t"+"读者性别"+rs.getString(4)+"\t"+"读者联系方式"+rs.getString(5));}}catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return true;}//搜索所有拥有借书证读者public boolean userInof(){Statement stmt =null;String sql="select * from user";try{stmt=conn.createStatement();//执行查询数据库的SQL语句   ,返回一个结果集(ResultSet)对象。ResultSet Book = stmt.executeQuery(sql);System.out.println("借书证号"+"   读者姓名"+"                 " +"读者年龄"+"  读者性别"+"      联系方式");while(Book.next()){ //如果对象中有数据,就会循环打印出来System.out.printf("%-10s",Book.getString("user_id"));System.out.printf("%20s",Book.getString("user_name"));System.out.printf("%20s",Book.getString("user_age"));System.out.printf("%20s",Book.getString("user_sex"));System.out.printf("%20s\n",Book.getString("user_phone"));}}catch (SQLException e) {e.printStackTrace();} finally {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}return true;}//借书public boolean borrow(Borrow borrow){if(serachBorrow(borrow.getBook_id())){return false;}boolean flag = false;PreparedStatement pstmt = null;String sql = "insert into borrow(user_id,book_id) values(?,?)";try {pstmt = conn.prepareStatement(sql); //模糊查询pstmt.setInt(1, borrow.getUser_id());pstmt.setInt(2,borrow.getBook_id());if (pstmt.executeUpdate() > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//还书public boolean return_book(Borrow borrow){boolean flag=false;PreparedStatement pstmt=null;String sql="DELETE FROM borrow WHERE user_id=? and book_id=?";try{pstmt=conn.prepareStatement(sql);pstmt.setInt(1, borrow.getUser_id());pstmt.setInt(2, borrow.getBook_id());if (pstmt.executeUpdate() > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//在借阅表中搜索该图书public boolean serachBorrow(int book_id){String sql="SELECT book_id FROM borrow WHERE book_id=?";PreparedStatement ptmt= null;try {ptmt = conn.prepareStatement(sql);ptmt.setInt(1, book_id);ResultSet rs=ptmt.executeQuery();if (rs.next()) {System.out.println("图书已被借走!\n");return true;} else {return false;}} catch (SQLException e) {e.printStackTrace();}return false;}
}

Main类

public class Main {public static Scanner scanner=new Scanner(System.in);public static DBDao dbDao=new DBDao();public static void main(String[] args) {Main main=new Main();System.out.println("欢迎使用图书馆管理系统");System.out.println("1.登陆         2.注册");System.out.println("请选择你要进行的操作:");int choose1=scanner.nextInt();switch (choose1){case 1:if( dbDao.denglu()){main.caozuo();}break;case 2:if(dbDao.zhuce()){dbDao.denglu();}else{System.out.println("注册失败");}break;}}//登陆后才能进行操作public  void caozuo(){int a=-1;while(a==-1) {System.out.println();System.out.println("---------------------管理员操作-----------------------");System.out.println(" 1.新图书入库\t" +"2.    图书信息查询\t" +"3.   图书更新(修改)\t" +"4.   旧图书删除\t" +"5.    办理借阅证登记\t" +"6.  图书借阅管理\t" +"7.退出操作");System.out.println("请选择你要进行的操作:");int choose2 = scanner.nextInt();switch (choose2) {case 1:insertNewbook();break;case 2:dbDao.bookInof();break;case 3:updatebook();break;case 4:deleteBook();break;case 5:loanCard();break;case 6:loanManagement();break;case 7:a=0;System.out.println("欢迎下次使用本系统");break;}}}//新图书入库public  void insertNewbook() {System.out.println("请输入要插入的图书编号:");int book_id=scanner.nextInt();System.out.println("请输入要插入的图书名称:");String  book_name=scanner.next();System.out.println("请输入要插入的图书作者:");String  book_author=scanner.next();System.out.println("请输入要插入的图书出版号:");String  book_press=scanner.next();Book book=new Book(book_id,book_name,book_author,book_press);if(dbDao.insertBook(book)){System.out.println("新图书入库成功!");}else{System.out.println("新图书入库失败!");}}//修改图书public void updatebook(){System.out.println("请输入要修改的图书的编号:");int book_id=scanner.nextInt();System.out.println("查询到该图书信息:");dbDao.searchBook(book_id);System.out.println("请输入修改后的图书名称:");String  book_name=scanner.next();System.out.println("请输入修改后的图书作者:");String  book_author=scanner.next();System.out.println("请输入修改后的图书出版号:");String  book_press=scanner.next();Book book=new Book(book_id,book_name,book_author,book_press);if(dbDao.bookUpdate(book_id,book)){System.out.println("图书信息修改成功!");}else{System.out.println("图书信息修改失败!");}}public void deleteBook() {System.out.println("请输入要删除的图书编号");int book_id=scanner.nextInt();if(dbDao.delelteBook(book_id)){System.out.println("删除成功!");}else{System.out.println("删除失败!");}}//办理借阅证public void loanCard(){System.out.println("办理借阅证登记:");SimpleDateFormat simpleDateFormat=new SimpleDateFormat("MMDDmmss");Date date=new Date();int user_id = Integer.parseInt(simpleDateFormat.format(date));System.out.println("请输入该读者的名字:");String  user_name=scanner.next();System.out.println("请输入该读者的年龄:");int  user_age=scanner.nextInt();System.out.println("请输入该用户的性别:");String  user_sex=scanner.next();System.out.println("请输入该读者的联系方式:");String user_phone=scanner.next();Pattern p = Pattern.compile("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$");Matcher m = p.matcher(user_phone);if(m.matches()){User user=new User(user_id,user_name,user_age,user_sex,user_phone);if(dbDao.loanCard(user)){System.out.println("借阅证登记成功!");System.out.println("该读者的借书证号为"+user_id);}else{System.out.println("借阅证登记失败!");}}else{System.out.println("输入的手机号格式不对");System.out.println("借阅证登记失败!");}}//图书借阅管理public  void loanManagement() {System.out.println("1.借书        2.还书       3.读者信息");System.out.println("请选择操作");int choose3=scanner.nextInt();switch (choose3){case 1:borrow();   //借书break;case 2:return_book(); //还书break;case 3:user();break;}}public  void borrow() {System.out.println("请输入该读者的借书证号:");int user_id=scanner.nextInt();System.out.println("请输入要借的图书编号:");int book_id=scanner.nextInt();Borrow borrow=new Borrow(user_id,book_id);if(dbDao.borrow(borrow)){System.out.println("借书成功");}else{System.out.println("借书失败");}}public  void return_book() {System.out.println("请输入该读者的借书证号:");int user_id=scanner.nextInt();System.out.println("请输入要还的图书编号:");int book_id=scanner.nextInt();Borrow borrow=new Borrow(user_id,book_id);if(dbDao.return_book(borrow)){System.out.println("还书成功");}else{System.out.println("还书失败");}}public  void user() {dbDao.userInof();}}

java连接mysql数据库实现图书馆管理系统相关推荐

  1. java linux mysql数据库_Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...

  2. 【Java】Java连接Mysql数据库的demo示例

    [Java]Java连接Mysql数据库的demo示例 1.安装mysql数据库 2.下载java-mysql-connector.jar包 3.完成java配置 4.写java代码运行测试 1.安装 ...

  3. Java连接mysql数据库的方式,java连接mysql数据库的方式(4句语句)

    1 加载mysql驱动: class.forName("con.mysql.jdbc.Driver").newInstance(); 2 根据数据库路径url,账号,密码进行数据库 ...

  4. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  5. java连接mysql数据库 R_Java连接Mysql数据库详细代码实例

    这篇文章主要介绍了Java连接Mysql数据库详细代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 隔了一段时间没连过数据库,代码都忘记了,网 ...

  6. 【工作笔记】如何在MySQL官网下载Java连接MySQL数据库的驱动jar包

    我们在开发时,Java连接MySQL数据库需要驱动jar包,而驱动包的版本要跟MySQL数据库版本相匹配,以下介绍怎样在MySQL官网下载各MySQL数据库对应版本的驱动包. 1.登陆Oracle官网 ...

  7. Java连接Mysql数据库警告:Establishing SSL connection without server's identity

    Java连接Mysql数据库警告:Establishing SSL connection without server's identity verification is not recommend ...

  8. Java连接MySQL数据库的超级详细步骤(Windows)

    1. 数据准备 1. 下载JDK 下载Java开发工具包JDK,下载地址:https://www.oracle.com/java/technologies/javase-jdk14-downloads ...

  9. Java连接mysql数据库的详细教程(增查)

    java连接mysql数据库[便于理解的jdbc] 一.开发环境 二.创建数据表 1. 用Navicat图形化创建 2. 用命令行创建 三.创建java工程 1.在eclipse中创建一个工程:Fir ...

  10. 简单的Java连接MySQL数据库

    简单的Java连接MySQL数据库 最近需要用到Java连接MySQL数据库 Connection conn = null; Statement stmt = null; try {// 连接数据库C ...

最新文章

  1. 实现网页中增加刷新按钮、链接的方法 搜集
  2. Url Rewrite 再说Url 重写
  3. 复随机变量及高斯熵的概念
  4. 超越Linux!华为鸿蒙明年将成“第五大操作系统”,网友:何时超过iOS?
  5. Linux 如何关闭防火墙
  6. 周鸿祎评互联网大佬的编程能力:我能排前三
  7. 手把手教你如何配置DBeaver对接FusionInsigth MRS Spark2x
  8. 开启MyBatis(一)
  9. 加载字典文件,扫描网站潜在目录
  10. 申万一级行业日指数_2017年申万一级行业分类表
  11. mac vulkan_在 macOS 上开发 Vulkan 程序
  12. 移动机器人路径规划算法研究综述(一)
  13. 写给本命年24岁的自己和你:这一年决定你的未来
  14. BZOJ 2751: [HAOI2012]容易题(easy)( )
  15. 情人节之Python版冰墩墩
  16. 计算机软件服务行业规范,行业标准信息服务平台
  17. 如何使用方位X210来查看海康威视IP摄像头
  18. (转)MTK之Flash篇一
  19. ROS2机器人-C++和Python怎么选
  20. 后勤管理系统—服务台管理功能

热门文章

  1. JAVA写一个小型超市管理系统,Java语言课程设计-小型超市管理系统
  2. keil中函数变量定位方法
  3. 原子结构示意图全部_原子结构示意图的分类和详细知识点
  4. 【OpenCV】特征检测器 FeatureDetector
  5. python人口普查数据数据分析_Python:第六次全国人口普查数据分析及可视化(pandas、matplotlib)...
  6. VC 消息钩子编程
  7. 安卓版本客户端2.1
  8. 苹果手机计算机切换用户名,苹果ID如何切换账号?苹果手机切换ID登录使用教程...
  9. 盈透IBKR IBAPI Quant | Database | 通过盈透ibapi下载历史数据 Part 01
  10. 使用Microsoft Network Monitor分析Wireshark无法解析的SSL流量包