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

下面是源码

public class BookManager{LinkedHashMap<String, Book> stu = new LinkedHashMap<String, Book>();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<Book> 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;elsereturn true;}/*** 获取所有书籍列表*/public List<Book> getAllBooks(){Connection conn = null; Statement stmt = null;  ResultSet rs = null;List<Book> 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语句从数据库取得结果。

下面是运行界面




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

Java图书管理系统(控制台程序)相关推荐

  1. Java图书管理系统练习程序(四)

    2019独角兽企业重金招聘Python工程师标准>>> Java图书管理系统练习程序(四) 本部分主要介绍List的基本操作与Java中泛型的使用. 一.Java中泛型的使用 泛型, ...

  2. java图书管理系统技术难度_Java图书管理系统练习程序(一)

    Java图书管理系统练习程序 第一部分 该部分主要实现命令行方式的界面与无数据库访问的练习,通过本练习.主要掌握Java的基础知识与面向对象程序设计思想.面向接口编程技术的知识与运用. 一.练习程序功 ...

  3. 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档)

    计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  4. 视频教程-手把手实现Java图书管理系统(附源码)-Java

    手把手实现Java图书管理系统(附源码) 南京大学软件工程硕士,曾就职于擎天科技.中软国际.华为等上市公司,擅长Java开发.Web前端.Python爬虫.大数据等领域技术. 全栈工程师,从事软件开发 ...

  5. 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)

    计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...

  6. 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...

  7. [附源码]计算机毕业设计JAVA图书管理系统

    [附源码]计算机毕业设计JAVA图书管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...

  8. java图书管理系统源码

    java图书管理系统源码 系统主要功能 读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看.查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能. 管理员:对图书. ...

  9. 13.JavaAPI(DAO模式+图书管理系统控制台版本)

    目录 一.理解程序设计分层的思想 二.DAO设计模式的组成以及各部分的开发 2.1 概述 2.2 DAO模式作用 2.3 DAO模式组成 三.DAO模式实现图书信息管理系统控制台版本之增删改查 3.1 ...

  10. 我的第一个项目----Java图书管理系统

    项目参考自:http://www.java1234.com/a/yuanchuang/swing2/ 项目视频及代码下载地址:链接:http://pan.baidu.com/s/1pLpQw2J 密码 ...

最新文章

  1. (转载)IE 浏览器的创新
  2. 创建型设计模式对比总结 设计模式(八)
  3. Alltesting众测平台访谈录第一弹!
  4. cocos2dx java 调用lua_cocos2dx之C++调用Lua
  5. B Convex Polygon
  6. 深入Java集合系列之五:PriorityQueue
  7. jQuery表格排序总成-tablesorter
  8. Linux:rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2
  9. mongod: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file:
  10. java_web开发入门
  11. 节点通讯共享信息的问题
  12. iphone换android手机铃声,在iPhone中换个自定义铃声的11个步骤
  13. java代码实现kafka消费端consumer的from-beginning功能
  14. Linux运维-ip地址配置
  15. (10)大类资产配置一升级版股债平衡
  16. 如何使用餐饮互动游戏进行拓客?餐饮加盟h5线下互动游戏能收获什么?
  17. 定时器、看门狗和RTC
  18. 三丰云永久免费云服务器
  19. es - elasticsearch - aggs - metrics - extended_stats
  20. 给大四实习学生的一些建议

热门文章

  1. MATLAB-典型动态系统建模与仿真
  2. ArcView GIS 应用与开发技术(1)-ViewTheme
  3. c语言大神,C语言入门大神有话说(一)
  4. JMeter录制脚本和参数化
  5. 【读书笔记】推荐系统实践-常见推荐算法及应用
  6. 软件工程概述思维导图总结(一)
  7. 小程序技术能提升桌面应用安全等级?
  8. Python 遗传算法路径规划
  9. 实证分析 | 中介效应检验原理与Stata代码实现
  10. scala教程(二) 函数