JDBC简介与连接mysql数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

JDBC简介:

JDBC全称为:Java DataBase Connectivityjava数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。

示意图:

cb8e13f47a5f756c1dbf4f865f22af8f.png



JDBC API里都是接口:

我们都知道在数据库连接上Java只做规范不做实现,所以Java只制定了接口,制定接口也是为了统一操作,并且将实现都交给数据库开发商有一些好处就是各家开发商去实现自己的数据库实现类,肯定要比让Java去实现做得要好,因为他们都比Java要了解自家数据库的特性,而且Java也省得了这些麻烦,将事都交给开发商去做。如果出现了问题背锅的也是数据库开发商,而不是Java


如何在工程中添加JDBC的jar包:

普通工程:

普通工程只需要在官网下载对应数据库的JDBC jar包,然后复制到工程目录下,接着添加到工程环境中即可,这里以mysql数据库作为示例:

官网下载:

b3fe57b01555d5196561adcbacb8beda.png

官网下载地址:

https://dev.mysql.com/downloads/connector/j/

 


  下载好后解压缩,找到JDBC的jar包,然后点击复制,接着粘贴到工程里,最后将添加进去的jar加入到工程环境中:

1732dc20b791739ac79f2fcd119eeb43.png

2c8e54c80e9b3c73d76766ef2b5f0735.png

dd28028045d5032295f43ccf9cc2a307.png




Maven工程:

  Maven工程就很简单了,到Maven的中央仓库搜索相应的数据库的JDBC jar包,然后将依赖配置到pom配置文件里即可:

57485fe4ed65207c5b6c5baa11109846.png

87411e5b63d8b4806c9d8ab38de7878d.png




JDBC的常用接口介绍:

JDBC的接口在java.sql包里:

DriverManager 驱动管理员 用于创建Connection对象

Connection 数据库连接对象

Statement SQL语句执行对象

PreparedStatement SQL预处理执行对象可防止有一些恶意的sql注入

ResultSet  SQL查询语句的结果集

ResultSetMetaData 查询表结构

CallableStatement 存储过程调用

 

思维导图:

c5a40a9ccc974f63ef5eb9cf937ca443.png





JDBC驱动:

JDBC API大部分都是接口,因为Java只做规范不做实现,只声明了各种接口,这时接口还没被实现的时候就像一个新的硬件还没被安装上驱动,接口都是由数据库公司来进行实现的,所以JDBC的驱动就是实现JDBC接口的操作类,我们需要这些实现类来创建数据库的连接对象,然后我们才能通过驱动创建出来的对象去对数据库进行操作,就像计算机上的硬件设备一样,需要一个软件或者说一些代码来驱动这个设备,才能够发挥相应的功能,所以我们也要通过JDBC驱动才能够发挥对数据库操作的功能。

 

Java连接数据库步骤:

  连接数据首先要用反射机制加载JDBC的驱动类,然后通过DriverManager驱动管理员类调用getConnection();方法来得到Connection数据库连接对象,调用这个方法时需要传递数据库的URL字符串、数据库用户和用户密码:

0a0e25f3d0adf7b4e94b5033035c160d.png



数据库URL字符串意义:cf52a17399f25497f5ca96a4a5ae84c0.png




JDBC驱动类加载原理:

  当Driver类被反射机制访问,它的静态块就会被执行,静态块里就只有一句用于进行驱动注册的核心代码,在这里Driver类被实例化出了对象,并且传递给了DriverManager驱动管理员类,所以才能够通过DriverManager类来得到数据库的连接对象:

2ea887e23def32482796fafefffdb127.png



Java连接数据库步骤思维导图:

e307be030974e60011d684f5af100e7a.png



本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1977000,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
1月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
2月前
|
数据库连接 应用服务中间件 PHP
|
2月前
|
Java 数据库连接 数据库
【YashanDB知识库】WAS配置YashanDB JDBC连接
【YashanDB知识库】WAS配置YashanDB JDBC连接
|
1月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
301 28
|
1月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
151 14
|
2月前
|
数据库
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
|
3月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
206 25
|
3月前
|
SQL 关系型数据库 MySQL
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
|
2月前
|
SQL Java 数据库连接
【YashanDB数据库】由于网络带宽不足导致的jdbc向yashandb插入数据慢
由于网络带宽不足导致的jdbc向yashandb插入数据慢