Java对MySQL数据库进行操作【java】

article/2025/8/21 5:49:53

数据库几乎是每一个应用型的程序都会用到,学会如何高效操作数据库也是开发一个重点。今天我总结了具体的操作步骤以及注意点。Java访问数据库主要用的方法是JDBC,是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,接下来进行总结。

一、操作的一般过程

1、连接数据库

2、调用Class.forName()方法加载驱动程序。

3、调用DriverManager对象的getConnection()方法,获得一个Connection对象。

4、创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句)。

5、调用excuteQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executeUpdate()等方法执行SQL语句,不返回ResultSet对象的结果。

6、对返回的ResultSet对象进行显示等相当的处理。

7、释放资源。

二、Java访问数据库的具体步骤

1、连接数据库

(1) 下载Mysql连接驱动

(2) 加载JDBC驱动

操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。

(3) 建一个简单的测试数据库如下:


2、加载JDBC驱动程序

  1. 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现。 
代码如下:

<span style="font-family:Microsoft YaHei;font-size:14px;"> try{   //加载MySql的驱动类   Class.forName("com.mysql.jdbc.Driver");System.out.println("驱动加载成功!");      }catch(ClassNotFoundException e){   System.out.println("找不到驱动程序类 ,加载驱动失败!");   e.printStackTrace() ;   }</span><span style="font-family:Microsoft YaHei;font-size:14px;">
</span>
如果成功加载,那么Driver的实例就会注册到DriverManager类中。

3、创建数据库的连接
1)连接URL定义了连接数据库时的协议、子协议、数据源标识。   
2)书写形式:协议:子协议:数据源标识  
     协议:在JDBC中总是以jdbc开始   
     子协议:是桥连接的驱动程序或是数据库管理系统名称。   
     数据源标识:标记找到数据库来源的地址与连接端口。

  1.   //连接MySql数据库,用户名和密码都是root   String url = "jdbc:mysql://localhost:3306/test" ;    String username = "root" ;   String password = "root" ;   try{   Connection con = DriverManager.getConnection(url , username , password ) ;   }catch(SQLException se){   System.out.println("数据库连接失败!");   se.printStackTrace() ;   } 

    4、创建Statement对象
  1. 要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:   
  2. 1)执行静态SQL语句。通常通过Statement实例实现。   
  3. 2)执行动态SQL语句。通常通过PreparedStatement实例实现。   
  4. 3)执行数据库存储过程。通常通过CallableStatement实例实现。 
具体的实现方式如下:

Statement stmt = con.createStatement() ;   
reparedStatement pstmt = con.prepareStatement(sql) ;   
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ; 

5、执行SQL语句
  1.  Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate  和execute  。
  2. 1)ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句   ,返回一个结果集(ResultSet)对象。   
  3. 2)int executeUpdate(String sqlString):用于执行INSERT、UPDATE或  DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等   
  4. 3)execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。   
例如:

//数据库查询语句
String sql = "select * from users";//要执行的SQL/*在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。*/
ResultSet rs = stmt.executeQuery(sql);//创建数据对象

6、处理ResultSet对象
  1. 两种情况:   
  2. 1)执行更新返回的是本次操作影响到的记录数。   
  3. 2)执行查询返回的结果是一个ResultSet对象。   
  4. ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。   
例如执行查询数据库表:
//数据库查询语句
String sql = "select * from users";//要执行的SQL/*在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。*/
ResultSet rs = stmt.executeQuery(sql);//创建数据对象System.out.println("编 号"+"\t"+"姓 名"+"\t"+"密 码"+"\t"+"邮 箱");
//遍历查询的结果集
while (rs.next()) {System.out.print(rs.getInt(1)+"\t");System.out.print(rs.getString(2)+"\t");System.out.print(rs.getString(3)+"\t");System.out.print(rs.getString(4)+"\t");System.out.println();
}

7、关闭JDBC对象,释放资源

  1. 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:   
  2. 1)关闭记录集   
  3. 2)关闭声明   
  4. 3)关闭连接对象   
//关闭连接rs.close();stmt.close();conn.close();
最后附上完整的查询和插入数据代码。

1、查询数据库

import java.sql.*;public class SelectTable {public static void main(String[] args) {try {//1.调用Class.forName()方法加载驱动程序Class.forName("com.mysql.jdbc.Driver");System.out.println("成功加载MySQL驱动!");String url= "jdbc:mysql://localhost:3306/test";//JDBC的URL String rootName = "root";String pwd ="root";//2.建立连接//调用DriverManager对象的getConnection()方法,获得一个Connection对象Connection conn= null;//创建Statement对象Statement stmt  = null;try {//建立数据库连接conn = DriverManager.getConnection(url,rootName,pwd);stmt  = conn.createStatement();//创建一个Statement对象System.out.println("成功连接到数据库~");//数据库查询语句String sql = "select * from users";//要执行的SQL/*在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例* 可以获得检索结果集,以及对应数据表的接口信息。*/ResultSet rs = stmt.executeQuery(sql);//创建数据对象System.out.println("编 号"+"\t"+"姓 名"+"\t"+"密 码"+"\t"+"邮 箱");//遍历查询的结果集while (rs.next()) {System.out.print(rs.getInt(1)+"\t");System.out.print(rs.getString(2)+"\t");System.out.print(rs.getString(3)+"\t");System.out.print(rs.getString(4)+"\t");System.out.println();}//关闭连接rs.close();stmt.close();conn.close();} catch (SQLException e) {e.printStackTrace();}			} catch (ClassNotFoundException e) {e.printStackTrace();}}
}
2、插入数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class InsertData {public static void main(String[] args) {try {//1.调用Class.forName()方法加载驱动程序Class.forName("com.mysql.jdbc.Driver");System.out.println("成功加载MySQL驱动!");String url= "jdbc:mysql://localhost:3306/test";//JDBC的URL String rootName = "root";String pwd ="root";//2.建立连接//调用DriverManager对象的getConnection()方法,获得一个Connection对象Connection conn= null;//创建Statement对象Statement stmt  = null;try {//建立数据库连接conn = DriverManager.getConnection(url,rootName,pwd);stmt  = conn.createStatement();//创建一个Statement对象System.out.println("成功连接到数据库~");//刷新的sql语句String sql = "insert into users values(2,'ajax','ajax','ajax@qq.com')";//建立PreparedStatement对象 PreparedStatement pst = conn.prepareStatement(sql);pst.executeUpdate();//System.out.println(pst);String sql3 = "select * from users";//要执行的SQL/*在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例* 可以获得检索结果集,以及对应数据表的接口信息。*/ResultSet rs = stmt.executeQuery(sql3);//创建数据对象System.out.println("编 号"+"\t"+"姓 名"+"\t"+"密 码"+"\t"+"邮 箱");//遍历查询的结果集while (rs.next()) {System.out.print(rs.getInt(1)+"\t");System.out.print(rs.getString(2)+"\t");System.out.print(rs.getString(3)+"\t");System.out.print(rs.getString(4)+"\t");System.out.println();}//关闭连接rs.close();stmt.close();conn.close();} catch (SQLException e) {e.printStackTrace();}			} catch (ClassNotFoundException e) {e.printStackTrace();}}
}


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

相关文章

Java 中使用 MySql以及一些Mysql 基本的命令

Linux mint 环境下配置 mysql 打开终端输入 sudo apt-get install mysql-server,回车即可安装 mysql&#xff0c;当然如果你想使用最新的 mysql&#xff0c;可以去官方下载并且配置&#xff0c;教程网上有很多&#xff0c;就不再赘述。 安装完成之后&#xff0c;在终端中输入…

【java对MySQL的操作详解】java学习之增查

文章目录 前言一&#xff0c;封装JDBC二&#xff0c;增2.1&#xff0c;UserDAO.java2,2&#xff0c;UserServier.java2,3&#xff0c;userUI.java添加用户 三&#xff0c;查3.1&#xff0c;UserUI伪iu3.2&#xff0c;UserServier.java3.3&#xff0c;UserDAO.java END 前言 具…

在Java中操作MySQL(JDBC)

准备工作 ideamysql 官方的 jdbc 驱动 先在 idea 中建立一个新的 java 工程 直到这一步之前&#xff0c;一直按下一步就行了 把名字改改直接 finish 在这个工程下面建立一个名字为 lib 的空文件夹 去官方下载依赖的包 https://dev.mysql.com/downloads/connector/j/ 选…

java操作mysql数据库

java操作mysql数据库 学习到数据库操作这一章&#xff0c;遇到了很多问题&#xff0c;只能说无论什么时候&#xff0c;用什么工具来操作数据库&#xff0c;都不是一件简单的事情。 简单记录一下 数据库连接 先看代码界面 要连接数据库&#xff0c;首先需要导入mysql依赖包&…

用Java操作MySQL

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

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

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

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

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

如何对接身份证OCR?

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

实名二代身份证OCR识别

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

Opencv实现身份证OCR识别

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

身份证OCR实名认证接口

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

身份证OCR识别SDK

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

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

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

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

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

离线身份证OCR识别

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

身份证OCR识别

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

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

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

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

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

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

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

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

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