JDBC连接技术(二):JDBC类基础

  一个基本的JDBC开发可以描述为包含下列的步骤:
  (1). 引入相应的类
  (2). 选择合适的JDBC驱动程序并加载
  (3). 分配一个Connection对象
  (4). 分配一个Statement对象
  (5). 使用该Statement对象进行查询等操作
  (6). 从取得的ResultSet对象中获取相应得数据
  (7). 关闭ResultSet对象
  (8). 关闭Statement对象
  (9). 关闭Connection对象

引入相应的类

  首先是引入相应的类和包。任何使用JDBC的源程序都需要输入java.sql包:

import java.sql.*;

  然后声明如下的一些对象:

ResultSet rs = null;
Connection conn = null;

  其中Connection对象代表与数据库的连接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。

装载驱动程序

装载驱动程序共有三种方法:

  • 用Class.forName()方法显式装载驱动,如:

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    执行该代码将装载驱动,并且在装载时,驱动将自动向JDBC注册自己。使用Class.forName()方法可能抛出一个ClassNotFoundException异常,所以在驱动程序类有可能不存在时,要捕获这个异常

    try
    {
        //注册数据库
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    }
    //捕获异常
    catch(ClassNotFoundException e)
    {
        System.out.println(e.getMessage());
        //......
    }

      注意:
      每个Driver类在得到加载的时候,一般都会创建它本身的一个实例,并通过调用DriverManager类的RegisterDriver方法来自动注册该实例。有些人喜欢显式地调用newInstance()方法来强行实施这一发布,然而这样可能出现问题:

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    这样通常会创建第二个多余的对象。另外DriverManager类中的所有方法都是static类型的,而构造器的生命类型为private,所以他们操作整个类,而不是操作具体的对象,也不可能创建DriverManager对象。

  • 把驱动作为参数在JVM启动时传递给它

    使用-D参数,例如:

    Java-D jdbc.dervers = com.microsoft.sqlserver.jdbc.SQLServerDriver example.ImageViewer

    这个方法的好处是它允许代码用于其它数据库,而不用重新编译。唯一要修改的东西是URL。此时需要将驱动程序的安装路径天就哀悼环境变量ClassPath里面。

  • 采用设置系统属性的方法装载驱动

    通过使用一个Properties对象来提供驱动程序所需的全部信息,并为该对象设置“关键字-属性值”对,通过系统调用的方法可以设置jdbc.drivers属性:

    System.setProperty("jdbc.drivers", "com.microsoft.sqlserver.jdbc.SQLServerDriver");

    第一个参数是要设置的属性的关键字,第二个参数为值。这种设置方法有可能涉及安全管理器的问题,并抛出一个SecurityException类型的异常,因此需作异常处理。

第二种与第三种方法类似,立足于设置系统属性,这两种方法可以更方便的移植代码到新的运行环境中,只要修改相应的URL。但后两种方法需要持久的预设环境,并且也要考虑安全管理器的影响,如果安全管理器有效,并且一个安全策略已在目标系统上得到设置,那么这两种设置方法有可能被禁止设置系统属性。

你可能感兴趣的:(Java数据库程序设计)