整个JDBC交互流程,分成以下四个模块。
应用程序加载驱动器
Class.forName("com.uxsino.uxdb.Driver")
加载驱动器的过程就是将UXDB的Driver注册进Driver管理模块,供后面的类使用。
图?3.1.?加载驱动器
获取连接的过程中最终会通过com.uxsino.uxdb.Driver的connect()为入口,沿着下图中链路创建connection,创建Connection的过程包含socket的连接创建和建立,最终创建出可用的连接。
图?3.2.?获取连接
实际上获取连接有多个接口,其入参是不同的,通常会使用Drivermanager.getConnection()。
connect函数先通过parseURL()解析URL中的信息,并保存在Properties中,该对象用于保存一些配置信息。
makeConnection创建连接对象。
打开Connection,建立socket连接,发送startupPacket。
同时,澳门游戏平台注册网站还要考虑连接的关闭,在JDBC程序结束之后,显式地需要关闭与数据库的所有连接以结束每个数据库会话。
如果在编写程序中忘记了关闭也没有关系,Java的垃圾收集器在清除过时的对象时也会关闭这些连接。使用JVM的垃圾收集,特别是在数据库编程中使用,是一个非常差的编程实践。因此应该要使用与连接对象关联的close()方法关闭连接。要确保连接已关闭,可以将关闭连接的代码中编写在“finally”块中。不管是否发生异常,一个finally块总是会被执行。关闭JDBC连接,并释放连接对象。
Statement用于执行静态SQL语句并返回生成结果的对象。
图?3.3.?执行SQL
整个执行sql执行过程如上图所示,围绕着Statement进行。
为了更好的获取执行结果,可以通过UxResultSet类的next()方法来获取,整个执行过程如下图所示:
图?3.4.?SQL结果