开发者社区> 技术小阿哥> 正文

JDBC简介与连接mysql数据库

简介:
+关注继续查看

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL连接错误,使用Navicat连接MySQL出现访问被拒错误的情况:
MySQL连接错误,使用Navicat连接MySQL出现访问被拒错误的情况:
36 0
MySQL连接IDEA详细教程
使用IDEA的时候,需要连接Database,连接时遇到了一些小问题,下面记录一下操作流程以及遇到的问题的解决方法。
39 0
错误代码:2013查询期间丢失与MySQL服务器的连接
错误代码:2013查询期间丢失与MySQL服务器的连接
26 0
【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
14 0
运维 ---Docker部署mysql后使用Navicat尝试连接遇到1251报错问题的解决方法
运维 ---Docker部署mysql后使用Navicat尝试连接遇到1251报错问题的解决方法
29 0
mysql 内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)
mysql 内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)
39 0
如何使用码匠连接 MySQL
目前码匠已经实现了与 MySQL 数据源的连接,支持书写 SQL 语句,也支持通过图形化界面对数据进行增、删、改、查, 同时还支持将数据绑定至各种组件,并通过简单的代码实现数据的可视化和计算等操作,能让您快速、高效地搭建应用和内部系统。
22 0
【Java】Java连接Mysql数据库的demo示例
【Java】Java连接Mysql数据库的demo示例
26 0
Egg 项目怎么连接 MySQL 实现增删改查接口?
Egg 项目怎么连接 MySQL 实现增删改查接口?
22 0
NET连接MySQL数据库的CRUD
NET连接MySQL数据库的CRUD
19 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载