MySQL小练习(使用JDBC操作数据库)

news/2024/10/17 10:36:36/

题目:

1.创建一个数据库(学号+姓名缩写,如: 2020001zs)在数据库中创建一张表 (五个以上字段) ;

2.使用JDBC(使用PreparedStatement接口) 操作数据库对表中的数据进行增删改查操作

目录

一、数据库

1.创建数据库

2.创建表

3.添加数据

 二、JDBC

1.准备环境

 2.查询数据

3.添加数据

 4.删除数据​​​​​​​

 5.修改数据


一、数据库

1.创建数据库

 

2.创建表

 题目说:数据库中创建一张表(五个以上字段),咋们就弄5个

drop table if exists student_course;
create table student_course
(course_id     varchar(10)  comment '课程号',course_name   varchar(15) comment '课程名',course_number double unsigned comment '学分数',student_time  int unsigned comment '学时数',teacher       varchar(10) comment '任课教师'
)comment '课程表';select *
from student_course;

 

 

 

3.添加数据


INSERT INTO student_course
values ('K001', '计算机图形学', 2.5, 40, '胡晶晶'),('K002', '计算机应用基础', 3, 48, '任泉'),('K006', '数据结构', 4, 64, '马跃先'),('M001', '政治经济学', 4, 64, '孔繁新'),('S001', '高等数学', 3, 48, '赵晓尘');select *
from student_course;

 

 二、JDBC

1.准备环境

点击进入mysql jar包下载官网

 MySQL如果是5版本:

 

 

 我的mysql是8版本,所以下载这个:

 

 ​​​​​​

 

 解压:

 

 

 

 

 2.查询数据

5.x版本的驱动文件jar包对应的是:
Class.forName("com.mysql.jdbc.Driver");
语句来加载数据库驱动

而我使用的是8.0x版本的数据库驱动文件,对此,需要将加载数据库驱动的语句更改为:
Class.forName("com.mysql.cj.jdbc.Driver");

 

import java.sql.*;public class Main {public static void main(String[] args) throws Exception {PreparedStatement ps = null;Connection con = null;ResultSet rs = null;try {Class.forName("com.mysql.cj.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/20202122084tsj?serverTimezone=GMT%2B8", "root", "root");String sql = "select * from student_course;";ps = con.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {System.out.println("编号:" + rs.getString(1) + "\t" + "课程名:" + rs.getString(2) + "\t" + "学分数:" + rs.getString(3) + "\t" + "学时数:" + rs.getString(4) + "\t" + "任课教师:" + rs.getString(5));}rs.close();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}}}

 

 

3.添加数据

import java.sql.*;
public class InsertData {public static void main(String[] args) {Connection con = null;PreparedStatement ps = null;try {Class.forName("com.mysql.cj.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/20202122084tsj?serverTimezone=GMT%2B8", "root", "root");String sql = "INSERT INTO student_course values(?,?,?,?,?);";ps = con.prepareStatement(sql);ps.setString(1, "K111");ps.setString(2, "javaWeb");ps.setDouble(3, 3);ps.setInt(4, 48);ps.setString(5, "丁老师");ps.execute();ps.close();con.close();} catch (Exception e) {e.printStackTrace();}}
}

 4.删除数据

import java.sql.*;public class DeleteData {public static void main(String[] args){Connection con = null;PreparedStatement ps = null;try {Class.forName("com.mysql.cj.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/20202122084tsj?serverTimezone=GMT%2B8", "root", "root");String sql = "delete from student_course where course_id  = ?;";ps = con.prepareStatement(sql);ps.setString(1,"K111");ps.execute();ps.close();con.close();}catch (Exception e){e.printStackTrace();}}
}

之前添加的数据被删除了 

 5.修改数据

import java.sql.*;public class UpdateData {public static void main(String[] ags){Connection con = null;PreparedStatement ps = null;try {Class.forName("com.mysql.cj.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/20202122084tsj?serverTimezone=GMT%2B8", "root", "root");String sql = "update student_course set course_name = ?,teacher = ? where course_id  = ?;";ps = con.prepareStatement(sql);ps.setString(1,"SpringCloud");ps.setString(2,"王老师");ps.setString(3,"S001");ps.execute();ps.close();con.close();}catch (Exception e){e.printStackTrace();}}
}

 代码冗余严重,之后会有工具类简化


http://www.ppmy.cn/news/86698.html

相关文章

opensuse15.4安装amd显卡hd6570驱动程序失败的原因分析

opensuse15.4安装amd显卡hd6570驱动程序失败的原因分析 台式机电脑系统是openSUSE-Leap-15.4-DVD-x86_64 独立显卡是AMD Radeon HD 6570 到官网https://www.amd.com/zh-cn.html——下载与支持——Radeon显卡与AMD芯片组——驱动程序——从下方列表中选中你的产品——AMD Radeon…

第五十三天学习记录:C语言进阶:动态内存管理Ⅰ

问: 栈区堆区静态区的大小是固定的吗?如果栈区满了,会向后2者借位置吗? ChatAI答: 栈区、堆区和静态区的大小通常是由操作系统或编译器预定义的,不是固定的。这些区域的大小通常受到多种因素的影响&#xf…

代码随想录补打卡 718 最长重复子数组 1143 最长公共子序列 1035 不相交的线

718 最长重复子数组 代码如下 func findLength(nums1 []int, nums2 []int) int { //三道题思路基本一致,dp[i][j]表示的是到第下标为i-1和j-1的两个数组重复元素的个数如果nums[i-1][j-1]相同,那么重复元素的个数要加1并且同时向后移动 dp : make([…

Three.js--》建模软件如何加载外部3D模型?

目录 三维建模软件的介绍 Blender官方文档介绍 Blender软件安装 GLTF格式简介 gltf不同文件形式 看过我之前讲解的three文章的人都知道,我在创建模型的时候都没有使用three.js自带的一些简单模型,而是引入外部的模型并加载到页面上,简言…

JavaSE_day37(异常介绍,异常处理方式2种,确定相对路径的技巧两种,如何处理多个异常,Throwable的常用方法,Fianlly关键字)

1 A.java /*异常(机制)介绍 * Exception in thread "main" java.lang.ArithmeticException: / by zero at com.itjinling_01.ExceptionDemo.main(ExceptionDemo.java:5) 我们在写代码的时候,经常的出现一些小问题&…

【云原生|Kubernetes】05-Pod的存储卷(Volume)

【云原生Kubernetes】05-Pod的存储卷(Volume) 文章目录 【云原生Kubernetes】05-Pod的存储卷(Volume)简介Volume类型解析emptyDirHostPathgcePersistentDiskNFSiscsiglusterfsceph其他volume 简介 Volume 是Pod 中能够被多个容器访问的共享目录。 Kubern…

MAAS搭建

要求 https://maas.io/docs/installation-requirements 安装maas sudo snap install --channel=3.3 maas安装postgres sudo apt update -y sudo apt install -y postgresql设置数据库 sudo -i -u postgres psql -c "CREATE USER \"$MAAS_DBUSER\" WITH E…

2021-2023外包生涯的遗憾屈辱过错总结

遗憾 最大的遗憾是: 做的项目并发量、用户量不大。背锅,被人甩锅的时候,没有进行明确的反击。 屈辱 项目:2021-2022 打印日志的时候,如果实体重写了toString(),即使使用Map类型,也不需要使…