MySQL中 java 的 JDBC 编程使用方法及驱动包的下载和使用

这篇具有很好参考价值的文章主要介绍了MySQL中 java 的 JDBC 编程使用方法及驱动包的下载和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简介

实际开发中要绝大多数要通过代码来执行 sql 语句,这就需要让其他的编程语言来操作数据库服务器。

mysql jdbc驱动,MySQL,mysql,java,数据库

API 是什么意思:

例子:某个东西可以带给我某个功能。

例子:我可以和我的朋友一起吃法、一起学习、一起打游戏。

例如 java 的标准库就会给我们提供一些 API,这个 API 中有一些随机数、scanner、集合类等。

mysql 也会提供这样的一组 API ,可以通过这组API来完成增删改查的操作~~

2.JDBC 的使用

2.1 先安装对应数据库的驱动包~~


mysql jdbc驱动,MySQL,mysql,java,数据库
要下载其中的 MySQL 驱动包,可以去官网下载也可以去 “中央仓库” 下载。

中央仓库 相当于是手机上的应用商店。

安装驱动包的网址:https://mvnrepository.com/


查询步骤:

1、访问网站

mysql jdbc驱动,MySQL,mysql,java,数据库

2、搜索 mysql

mysql jdbc驱动,MySQL,mysql,java,数据库
搜所结果第一个就是目标。


3、点进去往下滑动找到适合的版本(要和自己的数据库服务器对应)

mysql jdbc驱动,MySQL,mysql,java,数据库

往下滑找到大版本是5.1即可。

mysql jdbc驱动,MySQL,mysql,java,数据库

4、点击选中的版本后进入以下页面,点击此处下载

mysql jdbc驱动,MySQL,mysql,java,数据库
安装完成。

2.2 把安装好的 jar 驱动包导入到项目中~~

2.2.1 在项目中创建目录,把 jar 包拷贝进来。


1、点击圈出的部分

mysql jdbc驱动,MySQL,mysql,java,数据库

2.出现以下页面后,给目录命名。

mysql jdbc驱动,MySQL,mysql,java,数据库

3、选中目录,完成项目的创建。

mysql jdbc驱动,MySQL,mysql,java,数据库

4、创建一个新的目录。

mysql jdbc驱动,MySQL,mysql,java,数据库

5、点击后来到以下页面,目录名字随便起。

mysql jdbc驱动,MySQL,mysql,java,数据库

6、将之前装好的 jar 包 ctrl c v 过来即可,会出现以下界面。

mysql jdbc驱动,MySQL,mysql,java,数据库

7、完成

mysql jdbc驱动,MySQL,mysql,java,数据库

2.2.2 右键创建的目录


1、点击圈出的

mysql jdbc驱动,MySQL,mysql,java,数据库

2、在出现的窗口中点击ok即可

mysql jdbc驱动,MySQL,mysql,java,数据库

3、jar 包顺利导入

mysql jdbc驱动,MySQL,mysql,java,数据库

3.编写数据库代码插入一个记录


新建一个 java 文件,以插入一个记录为例子。

public class JdbcInsertDemo {
    public static void main(String[] args) {
        // 使用 jdbc 往数据库中插入一个记录
        // 需要提前准备好数据库(java)和数据表(student)
        // 1.创建数据源,描述了数据库服务器在哪
        // 2.和数据库建立网络连接(写的 jdbc 代码本质上是一个 MySQL 客户端,要通过网络和服务器进行通信)
        // 3.构造一个 sql 语句来完成 插入操作
        // 4.执行 sql 语句(控制服务器给客户端发送请求)
        // 5.断开与数据库的连接,并且释放必要的资源
    }
}




1、创建数据源,描述了数据库服务器在哪

需要注意的是,不同的数据库,对于数据源的描述是存在差异的。
有的数据库是通过用户名密码来认证,也有的不是,比如 SQLite

 DataSource dataSource = new MysqlDataSource();

这相当于是 向上转型

创建数据源需要用到 DataSource 类,这个类的包是 javax.sql
这个包中放的就是一些与 jdbc 相关的类。

mysql jdbc驱动,MySQL,mysql,java,数据库

下面要开始设置数据库所在的 地址端口数据库名

((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");


这里就相当于是 向下转型

URL 指的是唯一资源地址符,描述了互联网的唯一的一个资源的位置,也就是生活中所说的 “网址”。


jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false

  • jdbc 表示的是 这个 url 是给 jdbc中的 mysql 来使用的
  • 127.0.0.1 表示的是 数据库服务器所在的 IP 地址
  • 3306 表示的是 mysql 安装的时候配置的 端口号,一般默认是 3306。
  • java 表示这是 访问的 数据库名
  • charactEncoding=utf8 表示 描述了 请求的字符编码方式,一般都是设置成 utf8
  • useSSL=false 表示 关闭加密功能


接下来设置登录的 用户名密码(用户名默认是root)

((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("000000");


这里需要 注意 的是除了 数据库名密码 不同的人操作的可能是不一样的。
其他的都是和我的一样的。



2、和数据库建立网络连接。

上面的操作,只是描述了服务器在哪,并没有真正进行访问。

紧接着进行的 “连接操作” 才是真正的开始通过阅读进行通信。

Connection connection = dataSource.getConnection();


在提示的所有 Connection 中,选择下图中选择圈中的那一个。

mysql jdbc驱动,MySQL,mysql,java,数据库

上面写的那一条语句可能会抛异常。


mysql jdbc驱动,MySQL,mysql,java,数据库

下面就是会抛出的异常。

mysql jdbc驱动,MySQL,mysql,java,数据库

java 的异常,分为两类。

  1. 受查异常(必须要显示处理)
  2. 非受查异常(可以忽略)

受查异常是 try 自己把这个异常捕获处理了。
throws 交给别人来处理。

上面的 SQLException 就是一个受查异常。

mysql jdbc驱动,MySQL,mysql,java,数据库

这里main方法的 throws 意思是让 jvm 自己处理。
而 jvm 的处理方式很简单,就是直接摆烂。



3、构造一个 sql 语句来完成 插入操作


下面的代码只是相当于描述了 sql 是什么样的,还没有真正的构造 sql 。

// 描述 sql 语句的
 String sql = "insert into student values (1, '张三')";


下面的代码才是真正 构造 sql 语句的代码。

// jdbc 还需要搭配一个特点的对象来描述这里的 sql 的情况
PreparedStatement preparedStatement = connection.prepareStatement(sql);//这一步才是真正的构造 sql


需要注意的是,每次指行 sql 语句的时候,都需要构造一下。



4、执行 sql 语句(控制服务器给客户端发送请求)

下面代码输出的结果就是收到影响数据的行数。

// 如果是增删改则是使用 executeUpdate()
// 如果是查则是使用 executeQuery()
// 返回结果的含义就是执行完 sql 语句后几行数据受到了影响
int ret = preparedStatement.executeUpdate(); 
System.out.println("ret = " + ret);


mysql jdbc驱动,MySQL,mysql,java,数据库

这个就表示当前有一行数据受到了影响。



5、断开与数据库的连接,并且释放必要的资源

断开连接的原因:

连接本质上就是找个地方记录一下 “和谁建立连接了”。
当连接不在需要的时候,就需要释放连接,把之前的记录给 “擦除掉”

preparedStatement.close();
connection.close();


资源释放的顺序和创建的顺序是相反的。


整体代码展示。

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JdbcInsertDemo {
    public static void main(String[] args) throws SQLException {
        // 使用 jdbc 往数据库中插入一个记录
        // 需要提前准备好数据库(java)和数据表(student)

        // 1.创建数据源,描述了数据库服务器在哪
        DataSource dataSource = new MysqlDataSource();
        // 设置数据库所在的位置,当前是固定写法
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("000000");

        // 2.和数据库建立网络连接(写的 jdbc 代码本质上是一个 MySQL 客户端,要通过网络和服务器进行通信)
        Connection connection = dataSource.getConnection();

        // 3.构造一个 sql 语句来完成 插入操作
        // 描述 sql 语句的
        String sql = "insert into student values (1, '张三')";
        // jdbc 还需要搭配一个特点的对象来描述这里的 sql 的情况
        PreparedStatement statement = connection.prepareStatement(sql);//这一步才是真正的构造 sql

        // 4.执行 sql 语句(控制服务器给客户端发送请求)
        // 如果是增删改则是使用 executeUpdate()
        // 如果是查则是使用 executeQuery()
        // 返回结果的含义就是执行完 sql 语句后几行数据受到了影响
        int ret = statement.executeUpdate();
        System.out.println("ret = " + ret);

        // 5.断开与数据库的连接,并且释放必要的资源
        statement.close();
        connection.close();
    }
}

4.查看插入记录后的数据表


先来看一看数据表原来是什么样的。

mysql jdbc驱动,MySQL,mysql,java,数据库


mysql jdbc驱动,MySQL,mysql,java,数据库

运行代码后发现现在有一行数据收到了影响。

再来看看现在的数据表。

mysql jdbc驱动,MySQL,mysql,java,数据库

可以发现数据添加成功。

mysql jdbc驱动,MySQL,mysql,java,数据库

虽然实现了插入,但是当前的代码不够灵活。
更多的时候,我们希望插入的数据是动态的。

所以可以使用 Scanner 来完成更加灵活的插入,即输入什么就插入什么。

方法是使用 PreparedStatement 来通过占位符的替换的方式,实现多态的 sql 构造。

下面代码就是对于上面代码修改过的部分

// 2.和数据库建立网络连接(写的 jdbc 代码本质上是一个 MySQL 客户端,要通过网络和服务器进行通信)
Connection connection = dataSource.getConnection();

Scanner input = new Scanner(System.in);
System.out.println("请输入学号:");
int id = input.nextInt();
System.out.println("请输入姓名:");
String name = input.next();

// 3.构造一个 sql 语句来完成 插入操作
// 描述 sql 语句的
String sql = "insert into student values (?, ?)";
// jdbc 还需要搭配一个特点的对象来描述这里的 sql 的情况
PreparedStatement statement = connection.prepareStatement(sql);//这一步才是真正的构造 sql
statement.setInt(1, id);
statement.setString(2, name);
System.out.println("sql:" + statement);


mysql jdbc驱动,MySQL,mysql,java,数据库

把 id 这个值以 int 的形式替换到第一个 ?里。

把 name 这个值以 String 的形式替换到第二个 ?里。
\

System.out.println("sql:" + statement);


用来打印执行好的 sql 结果。

下面执行代码观看结果,可以看到当前执行好的 sql 结果及受影响的数据行数。

mysql jdbc驱动,MySQL,mysql,java,数据库

下面查看数据表。

mysql jdbc驱动,MySQL,mysql,java,数据库

发现数据成功插入。

5.如何编写代码实现查找操作


前面的步骤和 增删改 类似,只是改造的 sql 语句不一样。

 // 1.创建数据源,描述了数据库服务器在哪
 DataSource dataSource = new MysqlDataSource();
// 设置数据库所在的位置,当前是固定写法
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("000000");

// 2.和数据库建立网络连接(写的 jdbc 代码本质上是一个 MySQL 客户端,要通过网络和服务器进行通信)
Connection connection = dataSource.getConnection();

// 3.构造一个 sql 语句来完成 插入操作
// 描述 sql 语句
String sql = "select * from student";
//这一步才是真正的构造 sql
PreparedStatement statement = connection.prepareStatement(sql);


select * from student

这是一条查询数据表的 sql 语句,其他都是和增删改一样的。

下面的代码就是查询操作有改动的代码。

//结果集合
// 查询使用executeQuery
ResultSet resultSet = statement.executeQuery();
//拿到每一行 - next 相当于是使光标移动到下一行
while (resultSet.next()) {
    // 使用getXX 的方式得到每一列
    // 如果是int就是 getInt,如果是String,就是getString...
    // 这里的参数就是数据表的列名
    int id = resultSet.getInt("id"); // 代码的作用是得到 id 这一列的值
    String name = resultSet.getString("name"); // 代码的作用是得到 name 这一列的值
    //输出查询的结果
    System.out.println(id + ":" + name);
}


mysql jdbc驱动,MySQL,mysql,java,数据库

最终会是下面的状况。

mysql jdbc驱动,MySQL,mysql,java,数据库

下面代码的作用是取到这一列具体的值,数据表有几列的数据就写几条语句。

 int id = resultSet.getInt("id");
String name = resultSet.getString("name");


之后就是释放资源的操作了,释放的顺序要和创建时的顺序相反。

// 释放资源 - 释放顺序和创建顺序相反
resultSet.close();
statement.close();
connection.close();


下面访问数据表看看数据是什么样。

mysql jdbc驱动,MySQL,mysql,java,数据库

运行代码观察结果

mysql jdbc驱动,MySQL,mysql,java,数据库

可以看到代码的输出结果和数据库显示出来的一模一样的结果。


如果是 加限制条件 的查询,只需要把 sql 语句改了即可。

例如查询 id 为 1 的 学生。

此时需要将 sql 改为 select * from student where id = 1

运行代码会输出一下结果,同时也可以发现和数据库显示的结果相同。

mysql jdbc驱动,MySQL,mysql,java,数据库

mysql jdbc驱动,MySQL,mysql,java,数据库文章来源地址https://www.toymoban.com/news/detail-766865.html

到了这里,关于MySQL中 java 的 JDBC 编程使用方法及驱动包的下载和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用IDEA和Maven打包Jar包的详细方法

    使用IDEA和Maven打包Jar包的详细方法 在大数据开发中,使用IDEA和Maven进行项目管理和打包是常见的做法。本文将详细介绍如何使用IDEA和Maven打包Jar包,并提供相应的源代码。 步骤1:创建Maven项目 首先,我们需要在IDEA中创建一个Maven项目。在IDEA的欢迎界面中,点击\\\"Create New Pr

    2024年02月06日
    浏览(51)
  • 几种预训练模型微调方法和peft包的使用介绍

    现流行的微调方法有:Lora,prompt,p-tunning v1,p-tunning v2,prefix,adapter等等,下面抱着学习的心态进行宏观层面的介绍 如有错误,欢迎指出 LoRA(Low-Rank Adaptation)是一种技术,通过低秩分解将权重更新表示为两个较小的矩阵(称为更新矩阵),从而加速大型模型的微调,并减少内存

    2024年02月07日
    浏览(40)
  • JDBC的概念、作用、使用方法等

    JDBC是Java Database Connectivity的缩写,它是一组用于Java编程语言中连接和操作数据库的API。JDBC API定义了一组标准接口,使Java应用程序能够与任何关系型数据库进行交互,如Oracle、MySQL、PostgreSQL、Microsoft SQL Server等。 JDBC的作用是允许Java应用程序通过JDBC API与数据库进行通信,以

    2024年02月09日
    浏览(56)
  • iPhone上使用Charles 抓包的配置方法与问题解决方式

    我是在Mac os下配置的,其它平台的内容和步骤也差不多。 (网上很多,大致说下) 一、 Charles 下载: 1 )官网下载地址: https://www.charlesproxy.com/download/     (我用的破解版) 二、 Charles 配置代理: 1 )查看本机 IP : help--Local IP Address       2 )查看或者设置访问端口:

    2024年02月11日
    浏览(41)
  • 使用Gitee或GitHub托管Maven仓库JAR包的便捷方法

    原文地址:https://ntopic.cn/p/2023062201/ 我开源的JAR包的Gitee和GitHub托管的Maven仓库: Gitee托管仓库:https://gitee.com/obullxl/maven-repository GitHub托管仓库:https://github.com/obullxl/maven-repository 在上一篇博客中,我们介绍了 开源通用高性能分布式id序列组件 (https://ntopic.cn/p/2023062101/)的设

    2024年02月11日
    浏览(47)
  • 【MySQL】 Java的JDBC编程

    本节目标 数据库驱动 JDBC的概念及作用 掌握JDBC的工作原理 掌握JDBC中几个常用接口和类 掌握基于数据库的应用程序开发流程 编程语言,如Java,C、C++、Python等,博主用的是java; 数据库,如Oracle,MySQL,SQL Server等,博主用的是MySQL; 数据库驱动包:不同的数据库,对应不同的

    2024年02月08日
    浏览(28)
  • 【MySQL】Java的JDBC编程

    编程语言,如Java,C、C++、Python等 数据库,如Oracle,MySQL,SQL Server等 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提 供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的, 要基于Java操作Oracle数据库则需

    2024年02月20日
    浏览(29)
  • Java的JDBC编程—连接Mysql数据库

    目录 一、 Java的数据库编程:JDBC 二、JDBC工作原理 三、 JDBC使用 四、JDBC使用步骤总结  五. JDBC常用接口和类 5.1 JDBC API 5.2 数据库连接Connection 5.3 Statement对象 5.4 ResultSet对象      JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据

    2024年02月05日
    浏览(71)
  • DBeaver驱动连接错误解决方法(提示:com.mysql.cj.jdbc.Driver错误)

    1、提示驱动错误且下载一直失败         1、打开DBeaver点击窗口--窗口--首选项--点击驱动--Maven--添加新的源         2、添加源地址然后进行应用,把添加的源地址移动到最上面(我把其他的地址禁用了,我用不了)         阿里:http://maven.aliyun.com/nexus/content/groups/publ

    2024年02月05日
    浏览(57)
  • DBeaver连接mysql时报错com.mysql.cj.jdbc.Driver的解决方法【修改驱动下载的maven地址和重新下载驱动】

    网上下载了最新版本的DBeaver软件,但是链接mysql的时候驱动下载失败,所以就报下面错误了 原因:其实就是软件自带的下载maven地址不能用,如果你有看下载驱动界面,会看到提示的报错是超时。 所以就是因为驱动没下载成功所以链接才会有这个报错的。 位置如下【我下面

    2024年02月12日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包