查看jdbc源码记录

这是最近看源码的一次简单记录,不对的地方多多包涵,其中的东西想到哪就写到哪,可能比较乱

数据库是什么:不去管数据库的语言,我简单的把数据库理解为另外一台专门存放数据的服务器,怎么存储数据的我们不管,但是它对外肯定暴露了一些接口的,来提供给其他服务器连接它并查询它的数据。

jdbc是什么:jdbc是java2ee的一套规范,也就是一套接口,jdk的rt.jar包下,路径java.sql.* 下的相关接口,它定义了使用java怎么去连接数据库的步骤,但是只给出了步骤的名称,没有具体实现,具体的实现要根据实现了这套接口的数据库驱动程序来定义。

数据库驱动是什么:是个实现了java的jdbc接口的程序代码,它再内部会去创建socket连接到相应的数据库服务器上,然后能够自己来维护相关的数据和优化。

下面是简单的jdbc连接查询数据库的过程,整个源码的流程就是更具这个过程来查看的。

1、Class.forName("java.mysql.jdbc.cj.Driver");

Class.forName: 这个方法后跟的是一个全类名,执行这个方法,会根据类加载器的几个路径下去找这个类目的类,把找到的类加载的内存中,加载的过程默认会对类进行初始化,也就是会执行类的静态代码块。

这样就创建了一个mysql驱动的Driver类,并把这个类注册到DriverManager对象的registeredDrivers属性上,当调用

connection.getConnection()的时候,其实就是调用的驱动程序的连接方法。

  数据库连接的本质其实就是客户端维持了一个和远程MySQL服务器的一个TCP长连接,并且在此连接上维护了一些信息。

具体的代码逻辑跟着追就能追到。

preparedStatement:mysql 要执行一条语句,肯定是需要再一定的语义下的,而这个PreparedSatement就是再java层面去维护这样一个执行环境的,当PreparedStatement环境创建好了,执行executeQuery(),就可以实现对数据库的查询了。

再简历connection的时候,会发送tcp的三次握手。然后还有发送用户名密码校验信息,然后还有发送是否预编译的信息等等,然后才能查询出数据。

后期继续补充

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值