java操作mysql数据库

article/2025/8/21 6:00:30

java操作mysql数据库

学习到数据库操作这一章,遇到了很多问题,只能说无论什么时候,用什么工具来操作数据库,都不是一件简单的事情。

简单记录一下

数据库连接

先看代码界面

在这里插入图片描述

要连接数据库,首先需要导入mysql依赖包,在左侧项目文件内我新建了一个lib文件夹,然后在里面放了一个mysql的依赖包,这个依赖包的版本很重要,如果安装的mysql版本过高,而这个依赖包版本过低,就会各种报错。这里我折腾了好几次,找了一个与mysql版本一致的依赖包,加载依赖包的方式可以参考这篇博客,写的很好,我一次就成功了。

我先放一下代码

package Number;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class Conn {public static void main(String[] args) {try {Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT";String username = "root";String password = "我是马赛克";Connection c = DriverManager.getConnection(url, username, password);System.out.println(c);c.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();}}
}

来解释代码

  • ```Class.forName(“com.mysql.cj.jdbc.Driver”);这一行代码是用来加载驱动程序的,书本上使用的是下面这句代码Class.forName(“com.mysql.jdbc.Driver”);`没有cj,我运行了一下,虽然没有报错,但提示不赞成这么写,百度了一下,说是因为高版本的mysql依赖包不赞成这种写法,所以换成了程序中的写法;

  • String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT";这是另外一个坑点,重点解释一下:

    1. 127.0.0.1:3306这是主机名和mysql默认的端口号,一般访问本机的mysql就这么写没毛病;

    2. test是数据库名;

    3. ?serverTimezone=GMT这个接口参数很重要,看参数名字说的是服务器的时区,必须得加上,不加上也是一直报错

      UTC代表的是全球标准时间,是以原子时计时,更加精准,适应现代社会的精确计时。GMT格林威治标准时间,是指位于伦敦郊区的皇家格林尼治天文台的标准时间。但是我们使用的时间是北京时区也就是东八区,领先UTC和GMT八个小时。

暂时就这么多,待补充后续。

数据库查询

连接上了,查询就相对简单多了,直接记录代码:

package Number;import java.sql.*;public class Conn {public static void main(String[] args) {Statement st;ResultSet rs;try {Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT";String username = "root";String password = "我是马赛克";Connection c = DriverManager.getConnection(url, username, password);st = c.createStatement();rs = st.executeQuery("select * from stu_stu");
//            System.out.println(c);while(rs.next()){System.out.println(rs.getInt("id")+ rs.getString(2) + rs.getString("sex"));}c.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();}}
}

查询的逻辑是:

  1. 创建一个连接数据库的对象c
  2. 对象c实现createStatement()方法获得Statement对象st
  3. Statement对象执行查询语句,结果保存在ResultSet结果集中
  4. 用next()方法可以遍历结果集

增改删操作

与查询很类似,只不过用的都是executeUpdate()方法,返回的是一个int值,告诉你有几行数据被修改,上面的查询返回的是一个ResultSet结果集,看代码

package Number;import java.sql.*;public class Conn {public static void main(String[] args) {Statement st;ResultSet rs;try {Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT";String username = "root";String password = "我是马赛克";Connection c = DriverManager.getConnection(url, username, password);st = c.createStatement();
//            rs = st.executeQuery("select * from stu_stu");
//            System.out.println(c);
//            while(rs.next()){
//                System.out.println(rs.getInt("id")
//                + rs.getString(2) + rs.getString("sex"));
//            }// 插入数据
//            String insert = "insert into stu_stu(name, sex) values('tom','男'), ('mary', '女')" ;
//            int result1 = st.executeUpdate(insert);
//            System.out.println(result1 + "行数据被插入");// 修改数据
//            String modify = "update stu_stu set id = 4 where name = 'tom'";
//            int result2 = st.executeUpdate(modify);
//            System.out.println(result2 + "行数据被修改");// 删除数据String remove = "delete from stu_stu where name = 'mary'";int result3 = st.executeUpdate(remove);System.out.println(result3 + "行数据被删除");
//            System.out.println(insert);c.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();}}
}

修改数据后的结果:
在这里插入图片描述
删除数据后的结果:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/d2gUojoV.shtml

相关文章

用Java操作MySQL

用Java操作MySQL目录 一、创建数据库1、建库2、建表 二、开始准备jdbc1、导入mysql驱动jar包2、开始写jdbc代码 三、那就运行吧附:最终代码DBUtilMaindb.properties 一、创建数据库 打开Navicat(我用的是DataGrip)的查询控制台 1、建库 sq…

c++ opencv 身份证OCR识别:前期数据训练库准备(tesseractOCR)

前言:本文已经在个人博客更新排版和讲解【传送门】 整个教程已经在有道云写好了,在博客要重新把每个图片再上传一次有点累,先截了图直接看吧!如果有需要有提供word版本可以下载 https://download.csdn.net/download/stopping5/11…

身份证正反面识别,身份证扫描识别,二代身份证OCR识别,OCR极速识别身份证所有信息正反面均可。离线无需联网,极速秒扫。

项目说明 极速识别二代身份证、驾驶证、护照 (无需联网,离线秒扫,极速识别)身份证所有信息, 包含姓名、性别、出生年月、详细地址,正反面。不需要联网即可离线识别身份证所有信息包括新疆少数民族身份证,识别速度快,识…

如何对接身份证OCR?

【身份证OCR文字识别】身份证OCR识别-身份证识别-身份证-OCR文字-身份证OCR文字-身份证OCR-身份证OCR图像识别【最新版】_图像识别_身份证识别_OCR-云市场-阿里云 身份证OCR免费体验 Java代码如下 public static void main(String[] args) {String host "https://idcar…

实名二代身份证OCR识别

在银行、信用社、航空、保险、电信等部门单位办理手续或证件时,常需要身份证件,但业务人员手工录入速度慢、办公效率太低是一大亟需解决的问题,通常要先通过扫描或拍照,来获取身份证上面的头像,然后再手工填写用户的身…

Opencv实现身份证OCR识别

Opencv 配置IDEA可参考:https://blog.csdn.net/zwl18210851801/article/details/81075781 opencv位置: OpencvUtil类: package com.x.common.utils;import org.opencv.core.*; import org.opencv.core.Point; import org.opencv.imgcodecs.…

身份证OCR实名认证接口

人工智能,身份证,OCR实名验证 一、接口介绍 自动识别及快速提取二代居民身份证正反面所有字段,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限,实时联网核查校验是否一致。对URL网络图片或base64信息进行…

身份证OCR识别SDK

一、身份证OCR识别SDK应用背景 随着Android、IOS智能手机的普及,5G通信技术的发展,移动互联迎来了爆发式增长,越来越多的公司都推出了自己的移动APP、小程序等应用。这些应用多数都涉及到个人身份证信息的输入认证(即实名认证&…

阿里云智能身份证OCR文字识别

智能身份证OCR文字识别 做的项目里面涉及到了身份证识别输入的真实姓名与身份证号码是否匹配功能,于是在阿里云接了智能身份证OCR文字识别API,登录阿里云找到对应的产品,如下图 购买使用然后生成对应的APPcode。 使用的demo有蛮多&#xff0c…

如何用 身份证OCR 接口进行快速开发

最近公司项目有一个身份证文字识别的小需求,想着如果用现成的API就可以大大提高开发效率,在网上的API商店搜索了一番,发现了 APISpace,它里面的身份证OCR非常符合我的开发需求。 身份证OCR,传入身份证照片&#xff0c…

离线身份证OCR识别

离线身份证ocr识别简介 离线身份证ocr识别SDK可支持Android、iOS主流移动操作系统,android平台提供jar包,ios提供静态库.a文件。APP集成离线身份证ocr识别SDK后,用户采用手机、平板电脑对身份证进行拍摄识别即可自动识别身份证信息。 离线身…

身份证OCR识别

本文章来源于自己的学习图像处理以及识别过程中的一些经验,开发了一个OCR识别身份证程序,此程序虽不够完美但有一定的参考价值,CSDN上本人也将提供源代码,对身份证OCR识别整个过程的一个梳理。 程序依赖库,OpenCV3.20…

4款堪称手机神器的APP,每个都可以玩转手机,尤其是第三个

每个人的手机中都会一到两个永远不会卸载的APP,有些APP可以让你在工作中事半功倍,有些可以让你打发时间,并且还可以学习到不同的知识。下面就为大家介绍几个即可以娱乐还可以学习的APP。 一周计划 对于记忆力不好的小伙伴,可以在…

安卓手机软件开发_安卓最牛的下载神器,快收藏起来自己偷偷用

小编一直在想,有木有一款安卓手机电影下载神器让用户在一个手机 App 软件里,既能播放 BT 文件,又能下载网盘文件呢? 谁又不想要一个迅雷百度云网盘资源网站,三合一的手机电影下载神器呢? 其实小编很早就注意…

电脑复制手机粘贴神器-快贴使用方法

首先电脑下载快贴:https://home.clipber.com/index.html?styleorange 然后手机应用市场下载app:快贴(安卓苹果都可以下载) 回到电脑上把下载的软件安装好,用邮件注册登录,设置: 第二步点右下角任务栏 快…

android代码让手机降温,手机降温神器下载 手机一键降温神器 for Android v1.0.1 安卓版 下载-脚本之家...

对于经常使用手机的朋友来说,肯定手机会非常烫,如果手机持续高温的话就会降低电池的生命周期,所以,为手机降温是非常有必要的。今天小编带来了这款手机一键降温神器就不错,这是一款可以帮助用户快速降低手机温度的工具…

安卓手机垃圾清理神器!彻底清理你的手机垃圾!手机瞬间飞起来!

使用安卓手机的小伙伴经常会遇到一个令人头疼的问题“手机时间一久,各种缓存数据和垃圾文件会越来越多,不及时清理的话,不见占用储存空间,而且还会拖慢手机的运行速度”,大家可能使用过很多垃圾清理软件,清…

android wear阅读器,手机软件有哪些神器?

根据使用场景分类吧,给大家介绍几款私藏的神器: 一、久坐提醒,健康第一 如今,越来越多的事情可以在电脑上完成,学生族和办公族们,一不小心就会在电脑前坐上整一天。久坐带来的一个最直接感受,就…

手机最强Python编程神器,在手机上运行Python

手机编程软件有很多,大部分都很难使用,操作不灵活,甚至不能安装第三方库。 尝试安装了很多Python移动编程软件,发现了很多问题,不是编码效率低就是各种bug。今天,来自一位python编程小哥指导,向…

BatteryHistorian Android手机耗电分析神器

Battery-Historian是谷歌推出的一款专门分析Bugreport的工具,是谷歌2015年I/O大会上推出的一款检测运行在android5.0(Lollipop)及以后版本的设备上电池的相关信息和事件的工具,是一款对于分析手机状态,历史运行情况很好的可视化分析工具。 当…