Java jdbc连接数据库 图书管理系统实现添加图书功能

zz/2024/4/13 15:35:00

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/*
需求:
图书管理系统
(1)实现图书的增删改查功能,并保存信息到数据库。
(2)退出系统,下次登录时,能够查看之前的图书信息。

分析:
(0)建库,建表
(1)创建图书实体类Book
(2)实现增删改查,通过SQL实现

*/
public class BookManager {

public static void main(String[] args) throws SQLException, ClassNotFoundException {Scanner sc = new Scanner(System.in);while (true) {System.out.println("****************************");System.out.println("******  图书管理系统  ******");System.out.println("******  1.添加图书  ******");System.out.println("******  2.修改图书  ******");System.out.println("******  3.删除图书  ******");System.out.println("******  4.查询图书  ******");System.out.println("******  0.退出系统  ******");System.out.println("****************************");System.out.println("请输入操作序号:");int choose = sc.nextInt();switch (choose) {case 1:addBook();break;default:System.out.println("您的输入有误!");break;}}
}//实现添加图书功能
private static void addBook() throws SQLException, ClassNotFoundException {Scanner sc = new Scanner(System.in);System.out.println("....添加图书....");//伪代码System.out.println("请输入图书的编号:");int bookId = sc.nextInt();System.out.println("请输入图书的名称:");String bookName = sc.next();System.out.println("请输入图书的价格:");float bookPrice = sc.nextFloat();System.out.println("请输入图书的作者:");String bookAuthor = sc.next();System.out.println("请输入图书的出版社:");String bookPublisher = sc.next();//构建Book对象Book book = new Book(bookId, bookName, bookPrice, bookAuthor, bookPublisher);//加载驱动Class.forName("com.mysql.jdbc.Driver");//获取数据库连接String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "root";Connection conn = DriverManager.getConnection(url, user, password);//获取预编执行语句对象String sql = "insert into work values(?,?,?,?,?)";PreparedStatement pstmt = conn.prepareStatement(sql);//设置SQL参数pstmt.setInt(1, book.getBookid());pstmt.setString(2, book.getBookName());pstmt.setFloat(3, book.getBookPrice());pstmt.setString(4, book.getBookAuthor());pstmt.setString(5, book.getBookPublisher());//执行SQLint row = pstmt.executeUpdate();pstmt.close();conn.close();//提示System.out.println("图书添加成功!");
}

}


http://www.ngui.cc/zz/1545178.html

相关文章

主流数据库书籍电子版下载汇总贴 84本

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!主流数据库书籍电子版下载汇总贴&#xff08…

广播风暴≠网络环路

广播风暴 1、特定条件出现,不持续; 2、由局域网架构的缺陷导致; 3、需要通过VLAN划分来解决。 网络环路 1、可持续; 2、属于网络故障; 3、丢包情况比较严重; 4、解决只需要拔掉环路设备或网线即可。…

如何快速发现及解决网络环路问题

网络环路问题对企业网络存在很大的威胁,它会造成网络里的广播风暴,耗尽交换资源,造成交换机瘫痪。当网络环路发生时,会出现网络及应用访问缓慢、网络丢包甚至无法正常提供服务等异常。通常在大型的网络中发现网络环路并定位交换机…

内网环路怎么解决_利用生成树协议巧妙解决局域网二层环路

【IT168 技术】本文主要介绍局域网交换技术,也称为层2交换技术,内容主要包括层2交换的工作原理、网络环路、如何利用Spanning-Tree Protocol 来解决网络环路。在介绍交换技术之前不得不提一下传统的共享以太网的工作方式,了解一下冲突域&…

网络设备环路测试

测试网络设备是否有环路 可以将新加入的地址的,开始和边源 例如: 10.110.0.64 255.255.255.192 我们可以测试一下10.110.0.64和10.110.0.65地址 具体操作方法为: windows系统tracert 10.110.0.64和tracert 10.110.0.65 linux系统traceroute 1…

企业内部网路怎么防止网络出现环路?

企业内部网路怎么防止网络出现环路?学会STP生成树协议就可以解决啦! STP简介 在二层交换网络中,一旦存在环路就会造成报文在环路内不断循环和增生,产生广播风暴,从而占用所有的有效带宽,使网络变得无法 …

STP生成树协议切割网络环路

一、适用场景 在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份。这样就难免会形成环形网络,若网络中存在环路,可能会引起广…

bpduguard使用在接着虚拟机的服务器上,避免网络环路:STP和VMware vSwitch

STP是一个古老的协议,把它从故纸堆里扒出来是因为对理解现而今的数据中心网络的防环还是有一定帮忙的。在VMware环境中,VM连接的网络是虚拟的,是否会有环路吗?STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于…

公寓宽带服务器无响应,利用RLDP协议解决网络环路故障

在接入网络中,终端用户水平参差不齐,特别是在学生公寓中私接乱拉的情况比较普遍,很容易产生环路,造成局部网络瘫痪。虽然通过生成树协议能够解决部分环路的问题,但是受设备功能等其他方面制约,依然存在一些…

OVS:网络环路 广播风暴解决方案

OVS独立工作,不连接SDN控制器 出现环路,解决方案:虚拟交换机与物理交换机构成二层环路(比如虚拟交换机包含两块网卡,而这两块网卡都连接到物理交换机上,就是一个环路),一旦有广播报文…