陇南市网站建设_网站建设公司_网站建设_seo优化
2026/1/14 12:07:56 网站建设 项目流程

图书馆管理系统,具体功能包括:
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开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询