java项目实战-jdbc实现-书城的增删改查-day21
1. 安装mysql 安装navicate
参考网上资料
创库 创表 并放入3条测试数据
2. jdbc实现增删改查
book 实体类
package com.msb;
/**
* @Auther: jack.chen
* @Date: 2023/11/6 - 11 - 06 - 20:33
* @Description: com.msb
* @version: 1.0
*/
public class Book {
private int id;
private String name;
private String author;
private double price;
public Book() {
}
public Book(int id, String name, String author, double price) {
this.id = id;
this.name = name;
this.author = author;
this.price = price;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
实现增删改查
package com.msb;
import javafx.beans.binding.When;
import java.sql.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @Auther: jack.chen
* @Date: 2023/11/6 - 11 - 06 - 20:27
* @Description: com.msb
* @version: 1.0
*/
public class Test {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
while (true){
System.out.println("--欢迎来到书城--");
System.out.println("1.数据编号查询书籍");
System.out.println("2.查询所有书籍");
System.out.println("3.删除指定编号书籍");
System.out.println("4.退出");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入编号:");
int choice = scanner.nextInt();
if (choice==1){
System.out.println("请输出需要查询的书籍编号:");
int bno = scanner.nextInt();
Book b = getBookByNo(bno);
if (b==null){
System.out.println("您查询的书籍不存在");
}else{
System.out.println("查询成功!!!");
System.out.println(b);
}
}
if (choice==2){
ArrayList books = getAllBooks();
if (books.size()==0){
System.out.println("书城里面没有书籍信息!");
}else{
System.out.println("查询成功:");
for (int i = 0; i < books.size(); i++) {
System.out.println(books.get(i));
}
}
}
if (choice==3){
}
if (choice==4){
System.out.println("退出...");
break;
}
}
}
public static Book getBookByNo(int bno) throws SQLException, ClassNotFoundException {
Book book = null;
//加载驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接:
String url = "jdbc:mysql://127.0.0.1:3306/mysql?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
String username = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, username, password);
//创建会话:
Statement sta = conn.createStatement();
//发送SQL:ResultSet结果集合 - 结果集
ResultSet rs = sta.executeQuery("select * from t_book where id = " + bno);
if(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String author = rs.getString("Author");
double price = rs.getDouble("price");
book = new Book(id, name, author, price);
}
sta.close();
conn.close();
return book;
}
public static ArrayList getAllBooks() throws ClassNotFoundException, SQLException {
//加载驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接:
String url = "jdbc:mysql://127.0.0.1:3306/mysql?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
String username = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, username, password);
//创建会话:
Statement sta = conn.createStatement();
//发送SQL:ResultSet结果集合 - 结果集
ResultSet rs = sta.executeQuery("select * from t_book");
ArrayList<Book> books = new ArrayList<>();
while (rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String author = rs.getString("Author");
double price = rs.getDouble("price");
Book book = new Book(id, name, author, price);
books.add(book);
}
return books;
}
}
运行结果
java项目实战-jdbc实现-书城的增删改查-day21的更多相关文章
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- java springboot整合zookeeper入门教程(增删改查)
java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...
- Java Web项目案例之---登录注册和增删改查(jsp+servlet)
登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...
- java使用原生MySQL实现数据的增删改查以及数据库连接池技术
一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: <dependency> <groupId> ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- Node+Express+node-mysql 实战于演习 全套mysql(增删改查)
最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+nod ...
- 通过JDBC进行简单的增删改查(以MySQL为例)
目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 ( ...
- 通过JDBC进行简单的增删改查(二)
本章笔记更易理解和学习,也是我第一次初学的笔记. package javastudy; import java.sql.Connection; import java.sql.DriverManage ...
随机推荐
- Java8新特性Stream流
1.是什么? Stream(流)是一个来自数据源的元素队列并支持聚合操作 2.能干嘛? Stream流的元素是特定类型的对象,形成一个队列. Java中的Stream并不会存储元素,而是按需计算. 数 ...
- 华企盾DSC无缝替换其它加密软件两种方法
有源码和大型图纸的使用第一种方案 第一种: 1.把DSCClient.exe和DSCService.exe添加到竞品的加密软件进程中,配置允许打开加密文件,加密类型不加密 2.安装DSC客户端后扫描加 ...
- rcs群发软件系统功能设计与应用,rcs群发软件系统,rcs群发软件
随着科技的不断发展,人们对于通讯方式的需求也在不断变化,传统的短信.电话已经无法满足人们对于高效.便捷.实时的通讯需求,正是在这样的背景下,富通讯解决方案(Rich Communication Sui ...
- WinRM服务应用及配置说明
一.什么是winRM服务 1.1.winRM服务介绍 Windows远程管理(WinRM)服务是Windows Server 2003 R2以上版本中一种新式的方便远程管理的服务.通过WinRM服务, ...
- 部署堡垒机5——安装Core
部署jumpserver服务核心组件Core 一.前期准备 一个后台程序,基本上都是需要依赖于数据库才能运行,后台程序在启动的时候,代码就回去连接数据库,保证数据库,正确启动,且可以正确连接,否则后台 ...
- Pikachu漏洞靶场 Burte Force(暴力破解)
Burte Force(暴力破解) 文章目录 Burte Force(暴力破解) 概述 1.基于表单的暴力破解 2.验证码绕过(on server) 3.验证码绕过(on client) 4.toke ...
- 机器学习周刊03:如何学习深度学习?2024 年学习生成式 AI 路线图、如何构建高效的RAG系统、苹果 腾讯最新论文、阿里DreaMoving
腾讯推出的 AppAgent,是一个多模态智能体,通过识别当前手机的界面和用户指令直接操作手机界面,能像真实用户一样操作手机! 机器学习周刊:关注Python.机器学习.深度学习.大模型等硬核技术 1 ...
- kubernetes之部署nginx+vue前端(一)
kubernetes之部署nginx+vue前端(一) k8s系列项目的部署方式之一使用了kubernetes部署nginx+vue前端. 一.打包前端 将dist与Dockerfile放到同一目录下 ...
- 04 链表(上):如何实现LRU缓存淘汰算法?
一.什么是链表? 1.和数组一样,链表也是一种线性表. 2.从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构. 3.链表中的每一个内存块被称为 ...
- Golang 命名返回值和普通返回值
1.概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值.命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持"裸&q ...