写点什么

一文教你快速避开 JDBC 中常见的坑,网友:编写代码再也不翻车了

发布于: 3 小时前
一文教你快速避开JDBC中常见的坑,网友:编写代码再也不翻车了

今日分享开始啦,请大家多多指教~

1.概念:

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

1.1 jdbc 工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问 API 的一种高级抽象,它主要包含一些通用的接口类。

JDBC 访问数据库层次结构:

1.2 JDBC 优势:

Java 语言访问数据库操作完全面向抽象接口编程

开发数据库应用不用限定在特定数据库厂商的 API

程序的可移植性大大增强

2.引入 mysql 的 jar 包

首先将 mysql-connector-jar 包放入项目的 lib 文件夹下:

建立 jar 包和项目之间的联系




接下来就可以使用 jdbc 进行编程了

3.jdbc 的使用

3.1 首先加载 mysql 的驱动程序

这里使用 Class.forName()加载依赖包,具体是怎么操作的呢?

我们知道 Class.forName() 方法要求 JVM 查找并加载指定的类到内存中,此时将"com.mysql.jdbc.Driver" 当做参数传入,就是告诉 JVM,去"com.mysql.jdbc"这个路径下找 Driver 类,将其加载到内存中。

看看 Driver 的源码:

这里 new 了一个 Driver 对象传给了 registerDriver

看看 DriverManager.registerDriver 这个方法做了什么:

如果该驱动尚未注册,那么将它添加到 registeredDrivers 中去。

此时,Class.forName(“com.mysql.jdbc.Driver”) 的工作就完成了,工作就是:将 mysql 驱动注册到 DriverManager 中去。接下来我们看是怎么进行调用的

3.2 建立数据库和 jvm 的链接

这里 getConnection 到底干了什么事情呢?

这里返回的 getConnection 方法,再看看这里的 getConnection。



首先看看这三个参数都代表着什么

在源码的此处用到了 url 以及 info

找到了最终 url 解释的位置:这里的 url 指的是数据库的链接,如果驱动器能够解析这个 url 找到此数据库就返回 true。

info 对象中保存的是使用数据库的成员和密码;

getConnection 的上述源码中首先利用类加载机制加载了 mysql’的驱动器,接下来遍历缓存中的驱动器查看是否存在当前驱动,存在就利用驱动进行数据库链接;


url 设置:

这里的链接根据不同数据库系统采用不同的协议格式,ip 地址选择链接本地的 ip 地址,也可以是 localhost;

3.3 执行 sql 语句

这里的 statement 负责执行 sql 语句:下面看看它到底干了什么

发送参数化的 sql 语句到数据库;

可以看到这里创建了一个 PreparedStatement 对象,去执行此操作;

这里执行之后的返回值是 ResultSet 格式,因此创建一个 resultset 去承接这个结果即可

3.4 显示查询结果;


今日份分享已结束,请大家多多包涵和指点!

如何获取?

转发分享此文,后台私信小编:“1”即可获取。(注:转发分享,感谢大家)

用户头像

还未添加个人签名 2021.04.20 加入

Java工具与相关资料获取等WX: gsh950924(备注来源)

评论

发布
暂无评论
一文教你快速避开JDBC中常见的坑,网友:编写代码再也不翻车了