Java图书管理系统(控制台程序) 您所在的位置:网站首页 用java语言编写图书管理系统 Java图书管理系统(控制台程序)

Java图书管理系统(控制台程序)

2024-07-12 20:24| 来源: 网络整理| 查看: 265

这是Java练手的一个小项目,适合初学者,用的技术是Java和MySQL。主要功能包括 (1)用户登录 (2)增加图书 (3)修改图书信息 (4)删除图书信息 (5)查询图书 (6)查看所有的图书

下面是源码

public class BookManager{ LinkedHashMap stu = new LinkedHashMap(); Book book = new Book(); Scanner sc = new Scanner(System.in); public void Manage(int choice) throws Exception{ switch (choice) { case 0: list(); break; case 1: find(); break; case 2: add(); break; case 3: modify(); break; case 4: delete(); break; default: { throw new Exception("没有该功能,请重新选择!"); } } } //获取所有书籍 public void list() { Dao dao = new Dao(); List list = dao.getAllBooks(); System.out.println("书籍列表如下:"); for(Book book : list) { System.out.println("书名:"+book.getName()+" 作者:"+book.getAuthor()+" 库存量:"+book.getNum()); } } //搜索书籍 public void find() { System.out.println("输入要搜索的书名:"); String name = sc.next(); Dao dao = new Dao(); if(!dao.judgeExist(name)) System.out.println("该书籍不存在!"); else{ Book book = dao.find(name); System.out.println("书名:"+book.getName()+" 作者:"+book.getAuthor()+" 库存量:"+book.getNum()); } } //添加书籍 public void add() { Dao dao = new Dao(); System.out.println("输入要添加的书名:"); String name = sc.next(); if(dao.judgeExist(name)) System.out.println("该书籍已存在!"); else{ System.out.println("输入作者:"); String author = sc.next(); System.out.println("输入数量:"); int num = sc.nextInt(); dao.addBook(new Book(name,author,num)); System.out.println("添加成功!"); list(); } } //修改书籍 public void modify(){ System.out.println("输入要修改的书名:"); String name = sc.next(); Dao dao = new Dao(); if(!dao.judgeExist(name)) System.out.println("该书籍不存在!"); else{ Book book = dao.find(name); System.out.println("书名:"+book.getName()+" 作者:"+book.getAuthor()+" 库存量:"+book.getNum()); System.out.println("输入修改后的书名:"); String newname = sc.next(); System.out.println("输入修改后的作者:"); String newauthor = sc.next(); System.out.println("输入修改后的库存量:"); int newnum = sc.nextInt(); dao.modifyBook(name, new Book(newname,newauthor,newnum)); System.out.println("修改成功!"); } } //删除书籍 public void delete() { System.out.println("请输入要删除的书名:"); String name = sc.next(); Dao dao = new Dao(); if(!dao.judgeExist(name)) { System.out.println("书籍不存在!"); } else{ dao.deleteBook(name); System.out.println("删除成功!"); } } }

BookManager主要是和用户进行交互,在控制台显示信息提示用户如何操作,并且调用dao查询数据库拿到结果返回给用户。

public class Dao { /** * 根据书名判定书籍是否已存在 */ public boolean judgeExist(String targetName){ Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; int count = 0; try { conn = MySQLUtils.getConn(); String sql = "select count(*) as count from book where book_name = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, targetName); rs = stmt.executeQuery(); while(rs.next()){ count = rs.getInt("count"); } } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt, rs); } if(count==0) return false; else return true; } /** * 获取所有书籍列表 */ public List getAllBooks(){ Connection conn = null; Statement stmt = null; ResultSet rs = null; List bookList = new ArrayList(); try { conn = MySQLUtils.getConn(); String sql = "select * from book"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()){ String name = rs.getString("book_name"); String author = rs.getString("book_author"); int num = rs.getInt("book_num"); Book book = new Book(name, author, num); bookList.add(book); } } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt, rs); } return bookList; } /** * 根据书名查找书籍详细信息 */ public Book find(String bookName){ Connection conn = null; PreparedStatement stmt = null; Book book = null; try { conn = MySQLUtils.getConn(); String sql = "select * from book where book_name = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, bookName); ResultSet tmpres = stmt.executeQuery(); book = new Book(); while(tmpres.next()){ book.setName(tmpres.getString("book_name")); book.setAuthor(tmpres.getString("book_author")); book.setNum(tmpres.getInt("book_num")); } } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt); } return book; } /** * 添书 */ public void addBook(Book book){ Connection conn = null; PreparedStatement stmt = null; try { conn = MySQLUtils.getConn(); String sql = "insert into book(book_name, book_author, book_num) values(?,?,?)"; stmt = conn.prepareStatement(sql); stmt.setString(1, book.getName()); stmt.setString(2, book.getAuthor()); stmt.setInt(3, book.getNum()); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt); } } /** * 修改书 */ public void modifyBook(String targetName, Book book){ Connection conn = null; PreparedStatement stmt = null; try { conn = MySQLUtils.getConn(); String sql = "update book set book_name = ?, book_author = ?, book_num = ? where book_name = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, book.getName()); stmt.setString(2, book.getAuthor()); stmt.setInt(3, book.getNum()); stmt.setString(4, targetName); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt); } } /** * 删书 */ public void deleteBook(String bookName){ Connection conn = null; PreparedStatement stmt = null; try { conn = MySQLUtils.getConn(); String sql = "delete from book where book_name = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, bookName); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally{ MySQLUtils.closeConn(conn, stmt); } } }

Dao类就是和数据库交互,执行sql语句从数据库取得结果。

下面是运行界面

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 获取所有源码,可以关注公众号【秃头哥编程】回复【图书管理系统】即可获取。还可免费进群为你答疑哦。 也可扫描下面的二维码直接关注 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有