当前位置: 首页 > news >正文

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();}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 通天星CMSV6车载视频监控平台disable接口处存在SQL注入漏洞 [附POC]
  • 如何保护你的网络安全?
  • K3s部署及研究
  • Ubuntu24.04 NFS 服务配置
  • React前端面试每日一试 2.JSX是什么?JSX如何工作?
  • 新版GPT-4omini上线!快!真TM快!
  • mac 如何给默认终端(zsh)装插件,使得更美观易用
  • git-常用基础指令
  • Docker中安装的postgresql14在启用vector扩展的时候,找不到该扩展的控制文件。
  • 社交圈子聊天交友系统搭建社交app开发:陌生交友发布动态圈子单聊打招呼群聊app介绍
  • 虚拟局域网配置与分析-VLAN
  • go-kratos 学习笔记(4) 服务注册与发现 nacos注册
  • 以进程完成并发的UDP服务端
  • python中的fire和Linux shell中的参数传递
  • IDEA的pom.xml显示ignored 的解决办法
  • #Java异常处理
  • __proto__ 和 prototype的关系
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • golang 发送GET和POST示例
  • Laravel核心解读--Facades
  • Linux下的乱码问题
  • Odoo domain写法及运用
  • react 代码优化(一) ——事件处理
  • Redis 中的布隆过滤器
  • Vue 2.3、2.4 知识点小结
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 计算机在识别图像时“看到”了什么?
  • 开源地图数据可视化库——mapnik
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 协程
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #define,static,const,三种常量的区别
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (C#)获取字符编码的类
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (纯JS)图片裁剪
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (排序详解之 堆排序)
  • (七)glDrawArry绘制
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)http协议
  • ***利用Ms05002溢出找“肉鸡