龙空技术网

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

阿木自动化软件测试 180

前言:

现时咱们对“maven mysql”大致比较关心,大家都需要学习一些“maven mysql”的相关文章。那么小编在网上搜集了一些对于“maven mysql””的相关文章,希望我们能喜欢,看官们一起来学习一下吧!

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

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”即可获取。(注:转发分享,感谢大家)

标签: #maven mysql