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.xdnf.cn/news/1487303.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC的神秘面纱——利用人工智能生成内容改变我们的生活

近年来&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正在迅速改变我们与数字世界互动的方式。从自动写作到图像生成&#xff0c;AIGC正逐渐走进我们的日常生活。它不仅提高了效率&#xff0c;还为创意和商业活动带来了新的可能性。让我们一起来探索AIGC的世界&…

17.jdk源码阅读之LinkedBlockingQueue

1. 写在前面 LinkedBlockingQueue 是 Java 并发包中的一个重要类&#xff0c;常用于生产者-消费者模式等多线程编程场景。上篇文章我们介绍了ArrayBlockingQueue&#xff0c;并且与LinkedBlockingQueue做了简单的对比&#xff0c;这篇文章我们来详细分析下LinkedBlockingQueue…

从零开始构建你的第一个Python Web应用

在本文中&#xff0c;我们将带领你从零开始构建一个简单的Python Web应用。不需要任何先验知识&#xff0c;我们会一步步地指导你完成设置、框架选择、代码编写到部署的整个过程。无论你是Web开发新手还是希望扩展技能的老手&#xff0c;这篇文章都将为你提供一个实践操作的起点…

Spring-Aop源码解析(二)

书接上文&#xff0c;上文说到&#xff0c;specificInterceptors 不为空则执行createProxy方法创建代理对象&#xff0c;即下图的createProxy方法开始执行&#xff0c;生成代理对象&#xff0c;生成代理对象有两种方式&#xff0c;JDK和CGLIB。 createAopProxy就是决定使用哪…

【数据结构 | 哈希表】一文了解哈希表(散列表)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

昇思学习打卡-22-生成式/DCGAN生成漫画头像

文章目录 DCGAN网络数据处理构造网络生成器判别器损失函数优化器 结果展示 我们将学习DCGAN网络如何数据处理、设置网络&#xff0c;包括生成器、判别器、损失函数、优化器等。 DCGAN网络 DCGAN&#xff08;深度卷积对抗生成网络&#xff0c;Deep Convolutional Generative Ad…

windows下运行sh文件

1、打开git bash 2、进入sh文件所在文件夹&#xff0c;使用sh xx.sh运行

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

学习笔记:MySQL数据库操作2

1. 建库建表 创建数据库 mydb8_worker。使用该数据库 mydb8_worker。创建职工表 t_worker&#xff0c;字段包括&#xff1a; department_id: 部门号&#xff0c;整型&#xff0c;不允许为空。worker_id: 职工号&#xff0c;主键&#xff0c;整型&#xff0c;不允许为空。worke…

硬盘数据恢复的基本原理是什么 硬盘数据恢复教程

无论是电脑硬盘&#xff0c;还是日常办公过程中使用系统硬盘&#xff0c;都是由多个存储空间组成的。如果这些存储空间中的信息被删除了&#xff0c;那内部的文件也会跟着消失。下面&#xff0c;小编就以“硬盘数据恢复工具恢复原理&#xff0c;硬盘数据恢复教程”这两个问题为…

昇思25天学习打卡营第18天 | DCGAN生成漫画头像

探索DCGAN在生成动漫头像的实用性 通过深入学习和实践DCGAN&#xff08;Deep Convolutional Generative Adversarial Networks&#xff09;&#xff0c;我对这种深度学习模型在生成动漫头像方面的应用有了更全面的理解。DCGAN作为一种改进的GAN模型&#xff0c;通过在生成器和…

MP的使用

1、MP简介 MyBatis-Plus&#xff08;简称MP&#xff09;是一个MyBatis的增强工具&#xff0c;在MyBatis的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生 官网&#xff1a;MyBatis-Plus &#x1f680; 为简化开发而生 参考教程&#xff1a;https://baomidou.c…

土地规划中的环境影响评估:守护绿水青山的科学指南

土地规划&#xff0c;作为指导区域开发与保护的蓝图&#xff0c;其决策不仅关乎经济发展&#xff0c;更与生态环境息息相关。环境影响评估&#xff08;EIA&#xff09;作为土地规划不可或缺的一环&#xff0c;旨在预测、评估规划项目对自然环境和社会环境的潜在影响&#xff0c…

英语科技写作 希拉里·格拉斯曼-蒂(英文版)pdf下载

下载链接&#xff1a; 链接1&#xff1a;https://pan.baidu.com 链接2&#xff1a;/s/1fxRUGnlJrKEzQVF6k1GmBA 提取码&#xff1a;b69t 由于是英文版&#xff0c;可能有些看着不太方便&#xff0c;可以在网页版使用以下软件中英文对照着看&#xff0c;看着更舒服&#xff0c;…

【echarts区域地图】

背景&#xff1a;我们在制作大屏的时候&#xff0c;经常会使用到echarts制作各种图表&#xff0c;饼图&#xff0c;柱状图&#xff0c;折线图。有时候也会用到地图的交互&#xff0c;使大屏效果看起来更加高级。 我们要完成上面的效果需要准备什么呢&#xff1f; 首先是需要我…

Gson的基本使用:解析Json格式数据 序列化与反序列化

目录 一&#xff0c;Gson和Json 1&#xff0c;Gson 2&#xff0c;Json 3&#xff0c;Gson处理对象的几个重要点 4&#xff0c;序列化和反序列化 二&#xff0c;Gson的使用 1&#xff0c;Gson的创建 2&#xff0c;简单对象序列化 3&#xff0c;对象序列化&#xff0c;格…

基于ansible进行运维自动化的研究以及相关的属性

一、ansible-简介 介绍 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c; 实现了批量系统配置、批量程序部署、批量运行命令等功能。 无客户端。 …

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

最新可用度盘不限速后台系统源码_去授权开心版

某宝同款度盘不限速后台系统源码&#xff0c;验证已被我去除&#xff0c;两个后端系统&#xff0c;账号和卡密系统 第一步安装宝塔&#xff0c;部署卡密系统&#xff0c;需要环境php7.4 把源码丢进去&#xff0c;设置php7.4&#xff0c;和伪静态为thinkphp直接访问安装就行 …

音频处理过程

1、音频 &#xff08;1&#xff09;打开设备 &#xff08;2&#xff09;从音频设备中读取数据 &#xff08;3&#xff09;将音频设备中读取的数据写入文件夹中 &#xff08;4&#xff09; 通过界面控制开始录制和结束录制&#xff08;使用多线程和状态码控制&#xff09; &…