JDBC简介与连接mysql数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
|
分布式计算 关系型数据库 数据处理
Dataphin常见问题之没有建表的权限如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
27天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
367 3
|
4天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
4天前
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第二章(Node连接本地数据库)
【4月更文挑战第2天】本文介绍了如何使用Node.js连接本地MySQL数据库。首先,提到了在MySQL官网下载安装数据库和使用Navicat for MySQL进行数据库管理。接着,通过`yarn add mysql`在项目中安装数据库依赖。然后,创建`app.js`文件,设置数据库连接参数,并建立连接进行查询操作。遇到导入模块的错误后,修改导入方式为CommonJS语法。
19 1
|
7天前
|
SQL 监控 关系型数据库
PG数据库释放闲置连接
PG数据库释放闲置连接
13 0
|
7天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL 安装及连接
MySQL 安装及连接
25 0
|
16天前
|
存储 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
|
17天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
77 3
|
18天前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
12 0
|
18天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
25 0