jdbc-odbc桥数据库连接
1、工作原理:
JDBC- ODBC (Open Database Connectivity,ODBC) 桥驱动程序由Sun 与Merant公司联合开发, 主要功能是把JDBC API调用转换成ODBC API 调用, 然后ODBC API调用针对供应商的ODBC 驱动程序来访问数据库, 即利用JDBC- ODBC 桥通过ODBC来存储数据源。如下图:JDBC-ODBC应用模式
图1.1JDBC-ODBC应用模式
JDBC- ODBC 桥是一个JDBC 驱动程序, 对ODBC 而言, 它像是通用的应用程序,
桥为所有适用于ODBC 的数据库实现JDBC。它作为sun.jdbc.odbc 包实现, 其中包含一个用
来访问ODBC 的本地库。由于ODBC 被广泛地使用, 所以桥的优点是让JDBC 能够访问几
乎所有的数据库。桥支持ODBC 2.x, 这是当前大多数据ODBC 驱动程序支持的版本。桥驱动
程序为Java 应用程序提供了一种把JDBC 调用映射为ODBC 调用的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。因此,需要在客
户端机器上安装ODBC 驱动。JDBC-ODBC 桥在JDBCAPI 和ODBCAPI之间提供了一个桥
梁,这个桥把
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的JDBC 调用翻译成对应的ODBC 调用,然后通过ODBC 库把它们发送
到ODBC 数据源。
2、JDBC-ODBC所用的配置
桥作为包sun.jdbc.odbc 与JDK 一起自动安装, 无需特殊配置。Java 2 SDK 类库中包含
了用于JDBC-ODBC桥接驱动程序的类, 因此不再需要安装任何附加包就可以使用。但是客
户机需要通过生成数据源名(Data Source Names , DSN)来配置ODBC 管理器。DSN 是一个
把数据库、驱动程序、一些可选的设置连接起来的命名配置。具体配置方法如下( 在Windows
XP 环境下) :
( 1) 控制面板中, 管理工具?数据源(ODBC)->系统DSN;(如图2.1)
图2.1
( 2) 在ODBC 数据源管理器中的“ 系统DSN”中添加系统数据源(如果没有找到该数据源的驱动程序则需要下载安装)。 要注意, 一定要用系统(DSN)数据源, 不能用用户(DSN)数据源, 因为servlet 是伪系统(DSN), 所有的jsp 、servlet程序, 需要连接jdbc- odbc 驱动的话, 都只能用系统( DSN) 数据源, 不能用用户( DSN) 数据源。
3、各数据库的不同配置(图解)
3.1 Access
(1)添加->Driver do Microsoft Access(*.mdb)->完成
(3)在数据库标签中-->选择,在列表中 (2)输入数据源名称yiliangdian_access
选择需要连接的数据库student.
(4)单击高级可设置登陆名称yiliangdian与密码123456。这三项必须与程序中DriverManager.getConnection("jdbc:odbc:yiliangdian_access","yiliangdian","123456")一致。
3.2 mysql
(1) 如access中的(1)。
(2)选择mysql数据源驱动,如果没有则需要下载安装。 ->完成
(3)输入数据源名称yiliangdian_mysql,Server:localhost(如果连接其它主机,输入
IP),User:root,Password:123456,Databasse:student. ->OK
4、应用
/**
* filename: joaccess.java
* fuction: 实现jdbc-odbc桥连接方式方式
* writtenby yiliangdian @ 2008-4-18
**/
import java.sql.*;
public class joaccess {
public static void main(String[] args) {
//Connection
Connection con;
//SQL
Statement sql;
//StatementSQL
ResultSet rs;
try {
//jdbc-odbcjdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println(""+e);
}
try{
//DriverManagerJDBCDriverManager
//chenyuaccess
//
//
con =
DriverManager.getConnection("jdbc:odbc:yiliangdian_access","yiliangdian","123456
");
//Statement,StatementSQL
sql = con.createStatement();
//ResultSet
rs = sql.executeQuery("select * from chengjibiao");
while(rs.next()){
String number = rs.getString(1);
String name = rs.getString(2);
Date date = rs.getDate(3);
int math = rs.getInt(4);
System.out.println("" + number);
System.out.println("" + name);
System.out.println("" + date);
System.out.println("" + math);
}
con.close();
}catch(SQLException e1)
{
System.out.println("sql:"+e1);
}
}
}