【MySQL】JDBC编程

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

【MySQL】JDBC编程

目录

1、什么是JDBC?

2、导入 jar 包

3、JDBC 的使用

4、总结


1、什么是JDBC?

实际开发中,SQL 是很少手动输入的,绝大多数的 SQL 都是通过代码,自动执行的,这个时候就需要让其他编程语言来操作数据库了。

而 MySQL 是一个客户端/服务器架构的语言,根据 MySQL 提供的 API 写个数据库客户端是非常容易的。

比如 Oracle,SQLServer,SQLite 等数据库都有 API。

但是不同的数据库所提供的 API 是不一样的,他们的开发团队各不相同,所以 API 那么多,对于程序猿的学习成本就越高,于是在 Java 的圈子里,就把这些 API 统一编程一套,指定成标准!就称为 JDBC。

目前 JDBC 这套 API 已经成了 Java 标准库的一部分,由于 Java 的影响力还是很大的,以自身作为标准,各种数据库厂商,都提供了能够适应 JDBC 相关的驱动包!

所以我们只需要掌握了 JDBC 这套 API,无论操作哪个数据库,操作的代码都是不变,基本相同的。

即 JDBC 最主要的就是屏蔽了不同数据库原生 API 之间的差异,而是使用 JDBC 这一套 API 接口来规范了所有数据库的编程操作。


2、导入 jar 包

在使用 JDBC 之前,需要先安装对应数据库的驱动包,比如博主用的是 MySQL 5.7,那么下载对应的驱动包就是 mysql-connector-java-5.1.47.jar,这个驱动包可以到博主主页去获取!也可也去 Oracle 官网去下载哦!

下载好对应的驱动包后,我们就把 jar 包导入到项目中:

【MySQL】JDBC编程

首先创建一个存放 jar 包的目录, 随后把这个 jar 包拷贝进来:

【MySQL】JDBC编程

接着右键新建的目录(包含 jar 包),选中对应的 Add as Libray... 将目录创建成依赖目录,直接单击 OK,此时 IDEA 就能解析出 jar 包里包含的内容了!


3、JDBC 的使用

JDBC 这里的 api 看起来蛮多的,但实际上都非常简单,都是固定套路!

● 描述数据库的位置和用户密码

// 创建数据源
DataSource dataSource = new MysqlDataSource();
// 描述了数据库服务器所在位置, 当前固定写法
((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root"); // 设置登录账户名
((MysqlDataSource)dataSource).setPassword("211016"); // 设置登录密码

这样一段代码,就设置好了数据库服务器所在的地址,要操作的数据库用户和用户密码.

至于 setUrl 这里面的字符串含义,我们下面也来一一解析下:

  • "jdbc:mysql" :这个 url 是给 jdbc 中的 mysql 来使用的
  • "127.0.0.1" :服务器所在的 IP 地址,此处的 IP 是环回IP,表示主机自己
  • "3306" : 这个是端口号,mysql 安装时候配置的,默认是 3306
  • "demo" :要访问的数据库名
  • "characterEncoding" :描述了请求的字符编码方式,一般情况下都是 utf8
  • "useSSL = false" :关闭加密功能,这里不做展开介绍

上述的内容,在后续讲述网络知识的时候,还会见到,这里只是简单的了解即可。

JDBC 支持两种风格的代码,一种是 DataSource,一种是 DriverManager.

  • DataSource 相比于 DriverManager 内置了数据库连接池,可以重复利用连接(比如:线程池,字符串常量池....)
  • DriverManager 使用的时候,需要借助反射,数据不常规的编程手段,博主文章中采用的是 DataSource!

● 与数据库建立连接

上述的操作,只是描述了数据库服务器在哪里,并没有真正建立起连接来,下面我们进行连接操作,才是真正开始通过网络去与数据库服务器进行通信!

// 令当前客户端与描述的数据库服务器建立连接, 会抛出 SQLException 异常
Connection connection = dataSource.getConnection();

● 构造 sql 语句

String sql = "select id, name, sex from student";
PreparedStatement statement = connection.prepareStatement(sql);

通过 connection.prepareStatement 方法构造出一个对象,PreparedStatement 类型的,其实这个对象背后做了很多事情,比如会对 sql 语句进行一些预处理....

上述的写法是直接写死了,如果是查询操作还好,那如果是要执行新增操作呢?也是直接写死吗?

String sql = "insert into student values(4, '小丽', '女')";

更多的时候,插入的数据的动态的,那要怎么写呢?可以使用 PerparedStatement 来通过占位符替换的方式,从而实现动态 sql 的构造:

String sql = "insert into student values(?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, id);
statement.setString(2, name);
statement.setString(3, sex);

这里每个 ? 的位置是通过1开始计算的,setInt(1, 4),就是将第一个 ? 位置的数据插入成 4,后面的以此类推。  

构造出指定的 sql 语句后,就可以通过 statement 这个引用来执行了

● 执行 sql 语句

ResultSet result = statement.executeQuery(); // 查询操作
// int ret = statement.executeUpdate(); -> 新增, 修改, 删除操作

excuteQuery 执行后,会返回一个结果集,如果是 executeUpdate 则返回这个操作影响到几行。

● 处理结果集

while (result.next()) {
    int id = result.getInt("id");
    String name = result.getString("name");
    String sex = result.getString("sex");
    System.out.printf("student : id = %d, name = %s, sex = %s\n", id, name, sex);
}

【MySQL】JDBC编程

● 断开连接

result.close();
statement.close();
connection.close();

JDBC 使用步骤总结:

  1. 创建数据源并连接
  2. 创建 sql 语句
  3. 使用操作命令来执行 sql
  4. 处理结果
  5. 释放资源

JDBC 在实际工作中,可能并不会直接使用,上述的代码大家也能看到,写起来还是比较麻烦的,因此就有了一些库和框架,针对 JDBC 进行了进一步的封装,让我们使用起来更方便,比如后续会学习到的 Mybatis 这种... 


4、总结

其实 JDBC 并不难,就是几个固定的套路,如果要是应付考试,还是需要自己多建几个表利用 JDBC 使用一些复杂查询,多练习练习,如果是工作中,用 JDBC 就不多了,会使用更方便的框架,如果你是一个很有自己想法的同学,可以基于 JDBC 进行修改,搭建一套属于自己的框架出来...


MySQL 数据库基础(完) ❀文章来源地址https://www.toymoban.com/news/detail-410121.html

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

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

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

相关文章

  • [MySql]JDBC编程

      JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问 目录 JDBC的使用: 1.下

    2024年02月17日
    浏览(34)
  • MySQL的JDBC编程详解

    在实际项目中,我们对于数据库的操作大部分是通过代码来完成的,各种数据库在开发的时候,都会提供一组编程接口API。所以不同公司使用不同的数据库软件,那么程序员学习成本是非常大的,因为要学习不同数据库对应的编程风格和相关语法。所以在java层面就进行了统一

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

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

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

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

    2024年02月08日
    浏览(29)
  • 引入MySQL驱动包进行JDBC编程

    每个数据库都会提供一组API来支持程序员实现自己客户端,自己根据需求来完成一些具体的增删查改的功能。但数据库也有很多种,例如Oracle、MySQL、SQL Server等。显然,这些不同的数据库是出自不同的厂商之手,而对于数据库API的约定,并没有一个业界统一的标准。 Java这种

    2024年02月10日
    浏览(45)
  • 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)
  • MySQL数据库之JDBC编程(从认识到操作)

    目录 前言 一.JDBC的认识 1.1JDBC的来源 1.2JDBC的概念 二.JDBC的导包  三.JDBC的四步操作 三.JDBC常用的类和方法  3.1常用类 3.2常见方法 🎁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 🎥 本文由 tq02 原创,首发于 CSDN🙉 🎄 本章讲解内容: JDBC的详细讲解 🎥学习

    2024年02月15日
    浏览(42)
  • 【计算机编程语言】MySQL8+JDBC+Eclipse

    1.1数据库分类 关系型数据库:行,列 – (SQL ) MySQL,Oracle,Sql Server 通过表和表之间,行和列之间的关系进行数据存储。 学员信息,考勤表 非关系型数据库:{Key,Value} (NoSQL – not only SQL ) Redis,MongoDB 以对象存储,通过对象自身的属性来决定 DBMS – 数据库管理系统 数据库的

    2024年02月16日
    浏览(49)
  • 什么是 MySQL JDBC 连接池中最高效的连接检测语句?

    在回答这个问题之前,首先我们看看 MySQL 中有哪些常用的 JDBC 连接池: c3p0 DBCP Druid Tomcat JDBC Pool HikariCP 这些连接池中,c3p0 是一个老牌的连接池,很多流行框架,在其老版本中,都将 c3p0 作为默认的连接池。 DBCP 和 Tomcat JDBC Pool(Tomcat 的默认连接池)是 Apache 开源的。 Druid

    2024年02月04日
    浏览(44)
  • 中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明

    台球棋牌混合计时计费软件使用的编程构件说明 上图说明:该软件可以用于桌球和棋牌同时计时计费,在没有开台的时候,图片是处于等待状态,这使用编程工具中的固定图像构件,在正在计时的时候,图片自动变换为 进行中的状态,在编程中可以动态读取图片。 上图说明

    2024年02月08日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包