JDBC操作MySQL数据

一准备、

1、首先在IDEA中导入导入包:mysql-connector-java-8.0.23

2、写初始化语句

(1)在目录下找到driver类

 (2)在JDBCUtil函数中把驱动器的类路径改掉

①打开driver类

②按住类名 Driver用快捷键 Ctrl+Alt+shift+C 复制类的路径粘贴到Class.forName用来搞定驱动器
④改动语句:JDBCUtil函数完整详见附录①
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.77.100:3306/mysql?characterEncoding=utf-8", "root", "123456");
⑤启动虚拟机和Navicat,并且建立连接

二、增删改查

改变SQL语句

其余不变:详见附录

表:

表结构: 

1、查:

① sql语句:

表中的日期型转成字符串型输出

SELECTsno,sname,sage,DATE_FORMAT( CREATEtime, '%Y-%m-%d  %H:%i:%s' ) CREATEtime 
FROMmy_student2;
 String sql="SELECT\n" +"\tsno,\n" +"\tsname,\n" +"\tsage,\n" +"\tDATE_FORMAT( CREATEtime, '%Y-%m-%d  %H:%i:%s' ) CREATEtime \n" +"FROM\n" +"\tmy_student2;";//sql保存的是查表语句reset=stat.executeQuery(sql);//执行查询并返回结果集resetwhile (reset.next()){int sno =reset.getInt("sno");String name =reset.getString("sname");int age =reset.getInt("sage");String createtime =reset.getString("CREATEtime");System.out.println(sno + "-" + name + "-" + age+"-"+createtime);}

完整代码详见附录② 

2、增

①时间字段的存值:

我们只需要传入yyyy-mm-dd hh:mi:ss的格式时间字符串即可,无需手动转换

sql语句:

INSERT into my_student2 VALUES(NULL,'张三','20','2024-07-19 15:40:23');

 

 String sql="INSERT into my_student2 VALUES(NULL,'周八','20','1997-01-15 14:40:23')";//sql保存的是查表语句int i=stat.executeUpdate(sql);//执行查询并返回结果集resetSystem.out.println(i);

 

 

 

 

 

附录:

①第一个JDBCUtil函数

import java.sql.*;
import java.util.*;public class JDBCUtill {static Connection conn;//全部定义成静态类型static Statement stat;static ResultSet rest;private  static void getSource() throws SQLException, ClassNotFoundException {Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://192.168.77.100:3306/mysql?characterEncoding=utf-8", "root", "123456");stat=conn.createStatement();}private static void closeSource() throws SQLException {if(rest !=null){rest.close();}if(stat !=null){stat.close();}if(conn !=null){conn.close();}}public static List<Map<String, Object>> queryBySQL(String sql) throws SQLException, ClassNotFoundException {List<Map<String, Object>> list = new ArrayList<>();getSource();rest = stat.executeQuery(sql);ResultSetMetaData rsmd = rest.getMetaData();int columnCount = rsmd.getColumnCount();while (rest.next()) {Map<String, Object> map = new HashMap<>();for (int i = 1; i <= columnCount ; i++) {String columnName = rsmd.getColumnName(i);Object columnValue = rest.getObject(i);map.put(columnName, columnValue);}list.add(map);}closeSource();
return list;}public static int updateBySql(String sql) throws SQLException, ClassNotFoundException {getSource();int res=0;res =stat.executeUpdate(sql);closeSource();return res;}
}

②查询 

import java.sql.*;
import java.util.List;
import java.util.Map;
public class Test1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {Connection conn = null;//表示数据库的连接Statement stat= null;//用来操作SQL语句的操作ResultSet reset =null;//用来接收查询语句返回的结果集Class.forName("com.mysql.cj.jdbc.Driver");//加载oracle数据库的驱动类conn = DriverManager.getConnection("jdbc:mysql://192.168.77.100:3306/mysql?characterEncoding=utf-8", "root", "123456");//获取数据库的连接stat=conn.createStatement(); //获取statement对象String sql="SELECT\n" +"\tsno,\n" +"\tsname,\n" +"\tsage,\n" +"\tDATE_FORMAT( CREATEtime, '%Y-%m-%d  %H:%i:%s' ) CREATEtime \n" +"FROM\n" +"\tmy_student2;";//sql保存的是查表语句reset=stat.executeQuery(sql);//执行查询并返回结果集resetwhile (reset.next()){int sno =reset.getInt("sno");String name =reset.getString("sname");int age =reset.getInt("sage");String createtime =reset.getString("CREATEtime");System.out.println(sno + "-" + name + "-" + age+"-"+createtime);}if (reset != null) {reset.close();}if (stat != null) {stat.close();}if (conn != null) {conn.close();}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录vivado自带IP iBert眼图近端回环

记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具&#xff0c;在使用的时候并不用改太多的内容&#xff0c;只需要注意参考时钟及所需要的引脚即可。由于条件的限制&#xff0c;并没有使用光纤和电缆进行连接进行外部回环&#xff0c;仅使用内部回环做测试&…

Django 中设置联合约束和联合索引

在Django 中对一张表的几个字段进行联合约束和联合索引&#xff0c;例如电商项目购物车的时候&#xff0c;登录的用户和商品两个字段在一起表示唯一记录。联合约束参见unique-together官方文档。 举个联合约束和联合索引例子&#xff1a; class ShoppingCart(models.Model):&…

WEB前端08-综合案例(动态表格)

使用 HTML、CSS 和 JavaScript 创建动态表格 在本教程中&#xff0c;我们将创建一个动态表格&#xff0c;允许用户添加行、选择项目&#xff0c;并执行批量操作&#xff0c;如全选或删除选中的行。我们将通过 HTML、CSS 和 JavaScript 来实现这一功能。让我们逐步了解每个部分…

Xcode代码静态分析:构建无缺陷代码的秘诀

Xcode代码静态分析&#xff1a;构建无缺陷代码的秘诀 在软件开发过程中&#xff0c;代码质量是至关重要的。Xcode作为Apple的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的代码静态分析工具&#xff0c;帮助开发者在编写代码时发现潜在的错误和问题。…

kubernetes集群部署elasticsearch集群,包含无认证和有认证模式

1、背景&#xff1a; 因公司业务需要&#xff0c;需要在测试、生产kubernetes集群中部署elasticsearch集群&#xff0c;因不同环境要求&#xff0c;需要部署不同模式的elasticsearch集群&#xff0c; 1、测试环境因安全性要求不高&#xff0c;是部署一套默认配置&#xff1b; 2…

layui table 浮动操作内容收缩,展开

layui table 隐藏浮动操作内容 fixed: right, style:, title: 操作,align:left, minWidth: 450, toolbar:#id分析&#xff1a; 浮动一块新增一个class layui-table-fixed-r 可以隐藏整块内容进行&#xff0c;新增一个按钮点击时间&#xff0c;然后进行收缩和展开 $(‘.layui-…

【程序设计-底层设计-串口通信-底层交互-一些定义-嵌入式学习-自己思考(1)】

【程序设计-底层设计-串口通信-底层交互-一些定义-嵌入式学习-自己思考&#xff08;1&#xff09;】 1、概述2、环境说明3、学习部分-底层硬件1、当我们说&#xff1a;底层串口-TX&RT&#xff0c;我们在说什么&#xff08;1&#xff09;uart&#xff08;Universal Asynchro…

数学建模~~~SPSS相关和回归分析

目录 1.双变量相关分析 1.1理论基础 1.2简单散点图的绘制介绍 1.3相关性分析 1.4分析相关性结果 2.简单线性回归分析 2.1简单概括 2.2分析过程 2.3结果分析 3.曲线回归分析 3.1问题介绍 3.2分析过程 3.3结果分析 1.双变量相关分析 1.1理论基础 双变量相关分析并不…

HTML5-canvas1

1、canvas&#xff1a;创建画布 <canvas id"canvas"></canvas>2、画一条直线 var canvasdocument.getElementById(cancas&#xff09;; canvas.width800; canvas.height800; var contextcanvas.getContext(2d); //获得2d绘图上下文环境 //画一条直线 c…

linux 自定义服务(手工写的服务)在nginx服务启动后再启动

文章目录 需求实验 需求 mashang.service及nginx.service两者均需要开机自动启动自定义服务mashang.service需要在nginx.service服务启动后才能启动 实验 在 systemd 中&#xff0c;可以使用 Wants 或 Requires 以及 After 指令来定义服务之间的依赖关系。仅仅使用 After 并…

C++ STL nth_element 用法

一&#xff1a;功能 将一个序列分为两组&#xff0c;前一组元素都小于*nth&#xff0c;后一组元素都大于*nth&#xff0c; 并且确保第 nth 个位置就是排序之后所处的位置。即该位置的元素是该序列中第nth小的数。 二&#xff1a;用法 #include <vector> #include <a…

语音特征提取:从预处理到声学特征

语音特征提取&#xff1a;从预处理到声学特征 语音特征提取是语音处理和识别的关键步骤&#xff0c;它涉及从原始语音信号中提取有用的信息&#xff0c;以便于后续的分析和处理。本文将详细介绍语音特征提取的各个步骤&#xff0c;包括预处理、短时傅里叶变换、听觉特性、线性…

码蹄集部分题目(2024OJ赛7.17-7.21;并查集+最小生成树+线段树+树状数组+DP)

1&#x1f40b;&#x1f40b;供水管线&#xff08;钻石&#xff1b;并查集最小生成树&#xff09; 时间限制&#xff1a;1秒 占用内存&#xff1a;128M &#x1f41f;题目思路 该题目就是最小生成树的问题。我们使用选边的方法&#xff0c;每次选取最小边加入&#xff0c;用…

Kettle 登录示例 POST请求

登录接口是post请求&#xff0c;组装Body为json字符串 var body "{\"username\":\""username"\",\"password\": \""password"\",\"code\":\""verification"\",\"uuid\…

小阿轩yx-高性能内存对象缓存

小阿轩yx-高性能内存对象缓存 案例分析 案例概述 Memcached 是一款开源的高性能分布式内存对象缓存系统用于很多网站提高访问速度&#xff0c;尤其是需要频繁访问数据的大型网站是典型的 C/S 架构&#xff0c;需要构建 Memcached 服务器端与 Memcached API 客户端用 C 语言…

【C++】内存管理的深度解析与实例

C内存管理的深度解析与实例 一、C内存管理的基本概念二、C内存分配方式1. 静态内存分配2. 动态内存分配 三、C内存管理的常见问题及解决策略1. 内存泄漏2. 堆内存碎片化3. 栈溢出 四、C内存管理的最佳实践1. 使用RAII&#xff08;Resource Acquisition Is Initialization&#…

pytorch学习(十四)层结构容器

本篇文章列举了nn.Sequential&#xff0c;nn.ModuleList&#xff0c;nn.ModuleDict三个容器的使用方法&#xff0c;并且还学习了一种使用类封装模块的方法。通过本篇博客的学习&#xff0c;你将学习到三个容器和使用类构建容易的方法。 1.nn.Sequential 第一种方法直接列出每…

linux shell(上)

几个常用的shell命令 file 命令是一个方便的小工具&#xff0c;能够探测文件的内部并判断文件类型 file .bashrc # 检查文件 file Document # 检查目录df命令可以方便地查看所有已挂载磁盘的使用情况 du 命令可以显示某个特定目录&#xff08;默认情况下是当前目录&#xff0…

大模型涉及到的知识点

1. 基础数学和统计学 **线性代数&#xff1a;**矩阵运算、特征值与特征向量、奇异值分解等。 **微积分&#xff1a;**导数和积分、链式法则、梯度下降法等。 **概率与统计&#xff1a;**概率分布、期望与方差、最大似然估计、贝叶斯定理等。 2. 机器学习基础 监督学习&#xf…

【BUG】已解决:python setup.py bdist_wheel did not run successfully.

已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 目录 已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…