JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能。

   代码有一丢丢小多,最后有图解,讲的不对的地方希望各位大佬指出,对您有帮助的话请点个小小的赞。

题目与要求:

一、图书管理系统
(1),查询所有的图书信息
(2),新增图书
(3),修改图书信息
(4),删除指定的图书
(5),退出系统

二、解题思路分析

1.首先在mysql里用查询窗口创建表create table t_book_info(book_no varchar(20) primary key,book_name varchar(20),book_price float,book_author varchar(20),book_date  date)DEFAULT CHARSET = utf8;2.分析如何如何把mysql连接到编程软件(如:IDEA,Eclipse)里,
并测试是否连接成功(这里就不详细教了,不会的自行百度如何连接)。3.根据题目要求,我们知道主要分为5大块:(1)展示整个数据库(2)数据库的表的信息添加(3)数据库的表的信息修改(4)数据库的表的信息整行删除(5)结束整个程序

源代码及步骤:

(略过连接以及创表部分,无密码登录版本,主要讲如何通过java代码把数据添加到数据库中,)
1.根据题目首先创建一个菜单类:menu)
这个比较简单我就不解释了,学到jdbc,菜单应该都做过。

import java.util.Scanner;public class menu {/**为了方便展示所以把不同方法放在不同类里面先看懂do-while输出的是啥就先行*/public void show(){Jdbc_Lib jl = new Jdbc_Lib();Add_Lib al = new Add_Lib();Del_Lib dl = new Del_Lib();Update_Lib ul = new Update_Lib();Scanner sc = new Scanner(System.in);boolean flag = false;do{System.out.println("-----------欢迎登录图书管理员系统-----------");System.out.println("1,查询所有的图书信息");System.out.println("2,新增图书");System.out.println("3,修改图书信息");System.out.println("4,删除指定的图书");System.out.println("5,退出系统");System.out.println("请输入您需要的服务:");switch (sc.nextInt()) {case 1:jl.show();break;case 2:al.add();break;case 3:ul.up();break;case 4:dl.Del();break;case 5:System.out.println("谢谢使用!");return;}}while (flag != true);System.out.println("谢谢使用!");}
}

2.工具类 jdbcUtil

import java.sql.*;public class jdbcUtil {private static final String driver="com.mysql.jdbc.Driver";private static final String url="jdbc:mysql://localhost:3306/gecdb?charaterEncoding=utf8";//提示。这是5.6的url写法,与8.0不同。//8.0的url需要加入时区否者会抛出异常private static final String user="root";private static final String password="";private static Connection connection = null;static {try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection openConnection() {try {if (connection == null) {connection = DriverManager.getConnection(url, user, password);}} catch (SQLException e) {e.printStackTrace();}return connection;}public static int excuteUpdateAll(String sql, Object... paramters) {int iret = 0;PreparedStatement statement = null;try {if (connection == null) {openConnection();}//connection.createStatement()statement = connection.prepareStatement(sql);if (paramters != null && paramters.length > 0) {for (int i = 0; i < paramters.length; i++) {//注入参数的值statement.setObject(i + 1, paramters[i]);}iret = statement.executeUpdate();}} catch (SQLException e) {e.printStackTrace();} finally {closeAll(statement, null);}return iret;}public static void closeAll(Statement statement, ResultSet resultSet) {try {if (resultSet != null) {resultSet.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}}

3.添加图书类

import util.jdbcUtil;
import java.sql.*;
import java.util.Scanner;public class Add_Lib {menu m = new menu();public void add(){System.out.println("图书管理员系统>>新增图书");Scanner sc = new Scanner(System.in);PreparedStatement statement = null;try {Connection connection = jdbcUtil.openConnection();String sql ="INSERT INTO t_book_info (book_no,book_name,book_price,book_author,book_date) VALUES(?,?,?,?,?)";statement = connection.prepareStatement(sql);System.out.print("请输入需要添加的书名:");String book_name = sc.next();System.out.print("请输入书的价格:");float book_price = sc.nextFloat();System.out.print("请输入作者名称:");String book_author = sc.next();System.out.print("请输入日期:");String book_date = sc.next();System.out.print("请输入编号:");String book_no = sc.next();statement.setString(1,book_no);statement.setString(2,book_name);statement.setFloat(3,book_price);statement.setString(4,book_author);statement.setString(5,book_date);int iret = statement.executeUpdate();System.out.println(iret > 0 ? "增加成功" : "添加失败");} catch (SQLException e) {e.printStackTrace();}finally {}}
}

4.删除图书类

import util.jdbcUtil;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class Del_Lib {public void Del(){menu m = new menu();System.out.println("图书管理员系统>>新增图书");Scanner sc = new Scanner(System.in);PreparedStatement statement = null;try {Connection connection = jdbcUtil.openConnection();String sql ="DELETE from t_book_info where book_no= ?";statement = connection.prepareStatement(sql);System.out.print("请输入删除书籍编号:");String book_no = sc.next();statement.setString(1,book_no);int iret = statement.executeUpdate();System.out.println(iret > 0 ? "删除成功" : "删除失败");} catch (SQLException e) {e.printStackTrace();}finally {}}}

5.获取数据库信息类,也可以当成遍历数据库类

import java.sql.*;public class Jdbc_Lib {public void show(){Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/gecdb?charaterEncoding=utf8", "root", null);String sql = "select *from t_book_info";statement = connection.createStatement();resultSet = statement.executeQuery(sql);System.out.println("编号\t\t书名\t\t价格\t\t作者\t\t出版日期");while (resultSet.next()){String book_no = resultSet.getString(1);String book_name = resultSet.getString(2);float book_price = resultSet.getInt(3);String book_author = resultSet.getString(4);String book_date = resultSet.getString(5);System.out.println(book_no + "\t\t\t" + book_name + "\t\t" + book_price + "\t\t" + book_author + "\t\t" + book_date);}} catch (Exception e) {e.printStackTrace();}finally{try {if (resultSet != null){resultSet.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}}}

6.修改图书信息类

import java.util.Scanner;public class Update_Lib {public void up(){Scanner sc = new Scanner(System.in);PreparedStatement statement = null;try {Connection connection = jdbcUtil.openConnection();//支持参数化设置参数的值,更安全String sql = "update t_book_info set book_name=?,book_price=?,book_author=?,book_date=? where book_no=?";statement = connection.prepareStatement(sql);System.out.print("请输入修改书籍的编号:");String book_no = sc.next();System.out.print("请输入新书名:");String book_name = sc.next();System.out.print("请输入新价格:");float book_price = sc.nextFloat();System.out.print("请输入新作者名字:");String book_author = sc.next();System.out.print("请输入新日期:");String book_date = sc.next();statement.setString(1,book_name);statement.setFloat(2,book_price);statement.setString(3,book_author);statement.setString(4,book_date);statement.setString(5,book_no);int iret = statement.executeUpdate();System.out.println(iret > 0 ? "修改成功" : "修改失败");} catch (SQLException e) {e.printStackTrace();} finally {}}
}

7.测试类:

public class Test {/***  1,查询所有的图书信息*     2,新增图书*  3,修改图书信息*    4,删除指定的图书*   5,退出系统* @param args*/public static void main(String[] args) {menu m = new menu();m.show();}
}

以下是代码图解:
首页:

添加:
PS.提示删除,修改与添加类似,但是语句记得家where约束不然全给你删除或这修改了!

工具类:

方法不唯一,仅供参考

此代码有非常大的优化空间,我知识单纯实现功能并未做出优化。

JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能。相关推荐

  1. php+mysql实现简单的图书管理系统(简单的数据库操作)

    php+mysql实现简单的图书管理系统 ps:前端页面设计得有点丑,将就着用,哈哈哈.不具备用户和管理员功能,如要实现只需将首页的功能根据数据库中账号信息选择性使用就可以了.数据库关系设计什么的完全 ...

  2. java小项目图书管理系统_Java小项目迷你图书管理系统

    package迷你图书管理系统;importjava.util.Scanner;public classBookMgr {public static voidmain(String[] args) { ...

  3. Java简单的药店管理系统,实现添加,查询,修改,删除,打印药品信息

    药品信息类 Drug.Java public class Drug { private String drugNum; private String drugName; private String ...

  4. Java—简单的图书管理系统

    简单的图书管理系统 通过数据源和DAO对象访问数据库.其中JavaBeans实现模型,访问数据库,Servlet实现控制器,JSP页面实现视图. • 模型包括2个JavaBean:BookBean用于 ...

  5. PHP实现一个简单的图书管理系统

    刚收到了一个消息,老师竟然布置了一个课设 ,要求做一个后台管理系统.做归做,但是!本着为老师节省时间的心态,我花了大量的时间,消耗了无数脑细胞扫描了一遍老师给的课题,最终掐指一算选了一个最简单的--& ...

  6. JAVA面向对象小项目之迷你图书管理系统

    系统概述 为某图书馆开发一个迷你图书管理系统,实现图书的管理,包括如下功能: 1.新增图书 2.查看图书 删除图书 4.借出图书 5.归还图书 6.退出图书系统 整体开发思路 系统开发步骤 明确需求 ...

  7. 2020-07-03:简单的图书管理系统(Python、SQL Server)

    简单的图书管理系统 一.课题设计的基本内容 二.设计工具及系统运行环境 三.数据库设计E-R模型 四.软件主要功能设计(附上成品截图) 五.代码 一.课题设计的基本内容 经过对图书管理系统的分析,因图 ...

  8. java+mysql实现简单电影影片管理系统

    java+mysql实现简单电影影片管理系统 系统结构介绍 1.主要视图 2.项目准备 3.代码 1.Movies.java和user.java 2.demo.java 系统结构介绍 1.主要视图 分 ...

  9. 简单编写图书管理系统

    首先我们先梳理一下图书管理系统的功能 图书管理系统功能梳理 一.系统简介:能够对图书进行增删改查 二.步骤分析:1.写菜单 - 图书系统的所有功能2.实现每一个功能增加学生:a.将图书的信息加到列表里 ...

最新文章

  1. Android 双屏开发 Presentation 的使用教程
  2. python3语法错误-关于在python3.7当中的语法错误!
  3. Jenkins CLI命令行工具,助你轻松管理 Jenkins
  4. import tensorflow 报错 ImportError: DLL load failed: 找不到指定的模块。
  5. Spring学习(22)--- AOP之Advice应用(下)
  6. 法在计算机课程中的应用,任务驱动法在计算机办公课程中的应用
  7. centos 账号安全设置
  8. php打包mysql_PHP封装MySQL的单例
  9. Opencv之Mat操作(重要)
  10. 如何在Windows 10上安装MySQL数据库服务器8.0.19
  11. 性能测试用例、策略和方法
  12. 开挂程序员 Pat Gelsinger 如何重整英特尔?
  13. 李沐新书中文版上线,零基础也可以《动手学深度学习》| 这不是0.7版
  14. 前端页面劫持和反劫持
  15. TCP/IP网络知识点总结
  16. Cocos2dx--Cocos2dx与Android平台的跨平台调用
  17. 计算机科学顶尖期刊,重磅!中国各学科顶级期刊名单发布!(影响力指数排名)...
  18. 使用cartopy画飞机的航线
  19. 微信小程序css之盒子(box)模型
  20. 知识工程重点知识介绍-1

热门文章

  1. DP大作战—状态压缩dp
  2. 冲压模具设计的方法与步骤
  3. 硅谷来信精华内容分享
  4. 利用D触发器的输入输出延迟实现二倍频电路
  5. activiti设计工作流——任务派遣配置
  6. 有什么看穿别人心理的小技巧?
  7. 王安石传——任浩之著
  8. 贪心算法经典问题:硬币找零
  9. 人工智能之高清监控视频存储新技术
  10. 移动热点服务的属性此计算机,win10移动热点提示:我们无法设置移动热点怎么办_win10显示无法设置移动热点怎么办...