精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 数据库技术>>JAVA专题>>JDBC连接数据库的结构四部分

主题:JDBC连接数据库的结构四部分
发信人: noddy_fan(佐佑)
整理人: pengxiaohui(2001-07-16 09:51:57), 站内信件

1. 应用程序
  用户应用程序实现激活JDBC方法的数据库,发送SQL,然后获取结果功能,执行以下任务:
与数据源请求建立连接
向数据源发送SQL请求
为结果集定义存储应用和数据类型
询问结果
         过程处理错误
控制传输,提交操作或卷回操作
关闭连接
2. 驱动程序管理器
JDBC驱动程序管理器主要作用是代表用户的应用程序调入特定驱动程序:
为特定数据库定位驱动程序
处理JDBC初始化调用
为每个驱动程序提供JDBC功跑入口点
为JDBC调用执行参数和结果有效性
3. 驱动程序
驱动程序处理JDBC方法激活,向特定数据源发送SQL声明,并且为应用程序获取结果.在必要时侯,驱动程序翻译与/或优化请求,这样使请求符合DBMS支持的语言,驱动程序完成以下任务:
建立与数据源的连接
向数据源发送请求,
用户程序请求时,执行翻译
将错误代码格式成标准的JDBC错误代码
如果必要的话,管理游标
如果是显示的话,建立传输
4. 数据源
数据源由用户应用程序想访问的数据源和自身参数组成(换句话说就是,DBMS类型和网络层)
JDBC API定义了用户应用程序和驱动程序管理期间可能的交互作用,JDBC API定义了所有驱动程序和所有JDBC驱动程序和交互作用.


JDBC API 编程接口和类:
Java.sql.DriverManger:给类提供调入驱动程序的方法,并支持java.sql.Driver接口中的类创建数据库连接
Java.sql.Connection:显示一个将要执行进一步行动的特定连接
Java.sql.Statement:同一个连接一起向数据库发送声明
Java.sql.CallableSeatement:同上,但是以数据库存储函数形式发送声明
Java.sql.PreparedStatement:同上,但是以预编译的形式发送声明
Java.sql.ResultSee:允许访问查询声明的结果集
Java.sql.ResultSetMetaData:提供结果集中,如行类型和行属性的信息
Java.sql.DatabaseMetaData:提供数据库综合信息
加载驱动程序
JDBC通过JDBC.Driver系统属性来获取关于可利用驱动程序信息的资料,从命令行解释器或利用属性配置文件可给jdbc.driver系统属性进行设置:
利用命令解释器对静态的应用程序进行驱动器设置:
% java-Djdbc.drivers=foobar MyProgram
% java-Djdbc.drivers=foobar sun.applet.AppletViewer
  MyApplet.html
利用属性文件进行驱动器设置:
# on unix,this is /.hotjava/properties
jdbc.drivers=vendor1.driver1
   选择不同的驱动程序:
   vendor1.dbdrv,vendor2.sql.foodriver,vendor3.db.connectdrv
利用编程技术强迫装入驱动程序
Class.forName(“sun.jdbc.odbc.jdbcOdbcDriver”)
装载的是jdbc-odbc bridge的java代码
这种技术的另一种方法是:
java.sql.Driver myDriver = new sun.jdbc.odbc.jdbcOdbcDriver();
java.sql.DriverManager.registerDriver(myDriver);
查询数据库
jdbc数据源使用的URL语法如下:
jdbc:<subprotocol>:<subname>
其中jdbc表示使用的协议是JDBC,<subprotocol>是使用的JDBC驱动程序名,
<subname>是根据子协议而定的参数字符串。
例如:jdbc:odbc:sampledb; UID = javauser; PWD = hotjava;
例中使用了一个JDBC-ODBC bridge,并且ODBC数据源名称是sampledb。数据库的用户名是javauser,口令是hotjava。
Jdbc:mydbdrv://www.mydomain.net:8192 / mydb
其中使用的子协议是mydbdrv,数据库引擎运行于www.mydomain .net主服务器上。TCP/IP端口号是8192,访问的数据库名称是mydb.
ODBC的子协议URL必须一直符合下面的语法:
 Jdbc:odbc:<dsn>[;<attribute-name> = <attribute-value>]*
建立连接 
利用驱动程序管理器的get(connection)方法请求一个connection对象:
 …
  Connection connection;
String url = “ jdbc:odbc:datasource”;
Class.forName (“ sun.jdbc.odbc.jdbcOdbcDriver”)
Connection = DriverManager.getConnection(url,”javauser”,”hotjava”);
 …
//使用的协议---JDBC
//使用的驱动程序---JDBC-ODBC bridge
//ODBC数据源---mysource
//用户名称---javauser
//口令--- hotjava
其他方法如:
 Connection getConnection(String url);
 Connection getConnection(String url, String user, String password)
 Connection getConnection(String url, java.util.Properties info);
Sample:
建立和关闭一个连接
import java.sql.*;
class SimpleExample
 {
   public static coid main(String args[])
    { 
      String url = ”jdbc:odbc:mysource”;
     Try{
         Class.forName(“sun.jdbc.odbc.jdbcOdbcDriver”);
Connection connection =
DriverManager.getConnection(url,”javauseer,”hotjava”);
          Connection.close();
        }
   catch(Exception ex)
{
           System.out.println(“A problem occurred during the establishment of the connection:” + ex);
        }
     }
  }

[关闭][返回]