【Intellij IDEA】JAVA代码程序连接SQL Server 2022数据库实现简易的图书信息管理系统(学习交流)

您所在的位置:网站首页 java怎么连接数据库简化回答 【Intellij IDEA】JAVA代码程序连接SQL Server 2022数据库实现简易的图书信息管理系统(学习交流)

【Intellij IDEA】JAVA代码程序连接SQL Server 2022数据库实现简易的图书信息管理系统(学习交流)

2024-07-11 10:07| 来源: 网络整理| 查看: 265

文章目录 前言一、配置SQL数据库信息二、配置Maven三、编写源代码四、总结(附源码文件)

前言

很早之前用C#连接SQL Server数据库做了个简易的图书信息管理系统,但是前几天我看了一下,代码不够完善,于是这次用JAVA重新写了一遍,代码功能更加完善。

同样的,可以参考我上篇文章(JAVA连接SQL数据库实现账号登录注册等功能),这次用的也是IDEA编程软件,java版本openjdk-21,maven3.9.6,SQL Server 2022。话不多说,直接开始,后面会附加源代码文件。

一、配置SQL数据库信息

在这里插入图片描述 1、配置数据库连接信息,创建“LIMS”图书馆信息管理系统(Library Information Management System),里面有5张表:

“用户信息”表:

在这里插入图片描述

“管理员信息”表:

在这里插入图片描述

“实名信息”表:

在这里插入图片描述

“图书信息”表:

在这里插入图片描述

“借阅信息”表:

在这里插入图片描述 2、这些数据库表大家可以手动去创建,也可以在源码文件里面还原这个“LIMS.bak”数据库文件,这个要是不会就去百度搜索!或者在IDEA项目里面执行这个“LIMS.sql”脚本文件(源代码里面会有这个文件)。 在这里插入图片描述

二、配置Maven

这个去看我的上一篇文章:目录:二、配置Maven,里面有。源代码里面也有Maven文件夹,可以直接使用,我不再赘述。

三、编写源代码

1、这个源代码不需要再去修改,但是一定要配置好数据库连接和Maven路径信息。

另外,这个resouurces文件夹里面的appilcation.properties文件里面的数据库连接信息记得修改一下。

在这里插入图片描述 2、这个Java项目里面我创建了7个类,由于代码量太多,不可能一次性发出来,这里只给出部分:

(1) 主类Main1,用户选择功能,可以选择账户登录和账号注册选项;进入程序的时候,会自动判断身份有用户逾期未还书的情况,自动更新数据库信息。

import java.sql.*; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Scanner; public class Main1 { public static Scanner scanner = new Scanner(System.in); public static UserAccount st = new UserAccount(); public static AdminAccount sd = new AdminAccount(); public static UserOperate sr = new UserOperate(); public static AdminOperate se = new AdminOperate(); //用户操作中心 public static void UserCenter() throws SQLException { System.out.println("\n***************************** 用户操作中心 *******************************"); System.out.println("***************************** 1、查询图书 ********************************"); System.out.println("***************************** 2、借阅图书 ********************************"); System.out.println("***************************** 3、归还图书 ********************************"); System.out.println("***************************** 4、借阅记录 ********************************"); System.out.println("***************************** 5、修改密码 ********************************"); System.out.println("***************************** 6、注销用户 ********************************"); System.out.println("***************************** 7、实名认证 ********************************"); System.out.println("***************************** 8、退出登录 ********************************"); System.out.println("***************************** 0、退出程序 ********************************"); System.out.println("***************************************************************************"); System.out.print("请输入选择:"); String n5 = scanner.nextLine(); switch (n5) { case "1": sr.UserLookupBook(); break; case "2": sr.IsUserRealName(); break; case "3": sr.IsBorrowedBook(); break; case "4": sr.UserBorrowRecord(); break; case "5": st.UserChange(); break; case "6": st.IsBorrowBooks(); break; case "7": st.IsUserRealName(); break; case "8": Main1.Main2(); break; case "0": System.exit(0); break; default: System.out.println("请重新输入选择!"); UserCenter(); break; } } //管理员操作中心 public static void AdminCenter() throws SQLException { System.out.println("\n***************************** 管理员操作中心 *******************************"); System.out.println("****************************** 1、查询图书 *********************************"); System.out.println("****************************** 2、添加图书 *********************************"); System.out.println("****************************** 3、修改图书 *********************************"); System.out.println("****************************** 4、借阅信息 *********************************"); System.out.println("****************************** 5、修改密码 *********************************"); System.out.println("****************************** 6、注销账号 *********************************"); System.out.println("****************************** 7、退出登录 *********************************"); System.out.println("****************************** 0、退出程序 *********************************"); System.out.println("****************************************************************************"); System.out.print("请输入选择:"); String n4 = scanner.nextLine(); switch (n4) { case "1": se.AdminLookupBook(); break; case "2": se.AdminAddBooks(); break; case "3": se.IsExitsBooks(); break; case "4": se.IsUserBorrowBooks(); break; case "5": sd.AdminChange(); break; case "6": sd.AdminDelete(); break; case "7": Main2(); break; case "0": System.exit(0); break; default: System.out.println("请重新输入选择!"); AdminCenter(); break; } } //首页 public static void Main2() throws SQLException { System.out.println("\n*************************** 图书信息管理系统 *****************************"); System.out.println("**************************** 1、账号登录 *********************************"); System.out.println("**************************** 2、账号注册 *********************************"); System.out.println("**************************** 0、退出程序 *********************************"); System.out.println("***************************************************************************"); System.out.print("请输入选择:"); String n1 = scanner.nextLine(); switch (n1) { case "1": SelectLogin(); break; case "2": SelectRegister(); break; case "0": System.exit(0); break; default: System.out.println("重新选择!"); Main2(); break; } }

(2) UserAccount类:用户账号管理,包括账号登录、账号注册、修改密码、注销账号、实名认证等功能;管理员用户和普通用户名不能一样;如果存在逾期未还图书的情况,则用户账号不可注销。

public class UserAccount { public Scanner scanner = new Scanner(System.in); public static String Comuser;//用来接收登录成功后的用户名,方便各种操作验证 private static int count2 = 0;//定义一个计时器 //用户登录功能 public void UserLogin() throws SQLException { System.out.println("\n****************************** 用户登录 ***********************************"); System.out.print("请输入用户名:"); String username = scanner.next().trim(); System.out.print("请输入用户密码:"); String password = scanner.next().trim(); try (Connection conn = ConnectString.ConnectionString()) { String sql = "SELECT * FROM 用户信息 WHERE 用户名 = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, username); ResultSet rs = stmt.executeQuery(); if (rs.next()) { // 账号存在,继续判断密码是否正确 IsUserPwd(username, password); } else { // 账号不存在 IsUserRegister(); } } catch (SQLException e) { e.printStackTrace(); } }

(3) AdminAccount类:管理员账户操作功能,账号登录、账号注册、修改密码、注销账户。

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class AdminAccount { public Scanner scanner = new Scanner(System.in); public static String Adminuser;//用来接收登录成功后的管理员账号 private static int count3 = 0;//定义一个计时器 //管理员账户登录功能 public void AdminLogin() { System.out.println("\n****************************** 管理员登录 ***********************************"); System.out.print("请输入管理员账号:"); String user = scanner.next(); System.out.print("请输入管理员密码:"); String pwd = scanner.next(); try (Connection conn = ConnectString.ConnectionString()) { String sql = "SELECT * FROM 管理员信息 WHERE 管理员用户 = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, user); ResultSet rs = stmt.executeQuery(); if (rs.next()) { // 账号存在,继续判断密码是否正确 IsAdminPwd(user, pwd); } else { // 账号不存在 IsAdminRegister(); } } catch (SQLException e) { e.printStackTrace(); } }

(4) UserOperate类:用户可操作功能,查询图书信息,用户可以根据不同方式查询相关图书的信息;借阅图书,借阅图书之前,要输入借书证号;然后要实名认证才可以借阅;然后会判断是否存在逾期未还图书的情况,如果存在,则不可借阅,必须要先归还后,方可继续正常借阅;用户借阅图书之前,如果用户已经借阅A图书,再未归还之前,不可再借阅A图书,其他图书可以正常借阅;归还图书,用户可以归还借阅的图书;查询借阅信息,用户可以查看直接的借阅信息记录。

import java.sql.*; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Scanner; public class UserOperate { public static Scanner scanner = new Scanner(System.in); private static int count1 = 0;//计时器 private static String BookNum = ""; //图书编号 private static String BookCard1 = ""; //借书证号 private static final String NowDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); //获取当前时间 private static int BorrowBookCounts = 0; //已借阅册数 private static final int BackBookCounts = 0; //已归还册数,默认为0 private static final String OverDate = "否"; //是否逾期归还,默认为0 private static final String IsBackAll = "否"; //是否全部归还借阅书籍,默认为0 public void UserLookupBook() throws SQLException { System.out.println("\n****************************** 1、查询图书 *********************************"); System.out.println("1、查询全部;2、按图书编号;3、按图书名称;4、按出版社;0、取消"); System.out.print("请选择查询方式:"); String ways = scanner.next(); switch (ways) { case "1": LookBookAll(); break; case "2": LookBookNum(); break; case "3": LookBookName(); break; case "4": LookBookPublish(); break; case "0": Main1.UserCenter(); break; default: System.out.println("请重新输入选择!"); UserLookupBook(); break; } }

(5) AdminOperate类:管理员对图书进行操作,查询图书;修改图书信息;添加图书信息;查看用户借阅记录。

import java.sql.*; import java.util.Scanner; public class AdminOperate { public static Scanner scanner = new Scanner(System.in); //管理员选择查询图书信息方式 public void AdminLookupBook() throws SQLException { System.out.println("\n****************************** 1、查询图书 *********************************"); System.out.println("1、查询全部;2、按图书编号;3、按图书名称;4、按出版社;0、取消"); System.out.print("请选择查询方式:"); String ways = scanner.next(); switch (ways) { case "1": LookBookAll(); break; case "2": LookBookNum(); break; case "3": LookBookName(); break; case "4": LookBookPublish(); break; case "0": Main1.AdminCenter(); break; default: System.out.println("请重新输入选择!"); AdminLookupBook(); break; } } 四、总结(附源码文件)

以上就是今天的全部内容了,花了一个星期左右完成的,功能相对比较简单。 感兴趣的小伙伴可以来看看,自己上手试一试,写一写 因为源代码比较长,所以没有全部发出来,感兴趣的小伙伴可以在下方链接领取。 链接:https://盘.百度.com/s/1mz4Av-aJ6m1AYOhwNk4ybw?pwd=YGJI 提取码:YGJI (链接文字改为拼音,复制整条链接打开手机百度网盘即可)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3