时间:2024-06-03
童少娟
[摘 要]Java数据库连接(JDBC)由一组用 Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API来编写数据库应用程序,本文介绍了JDBC的概念、功能、特点及JDBC连接几种数据库的方式。
[关键词]JDBC Java 数据库 连接
JDBC是执行SQL语句的Java API。使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。换言之,用户不必为访问Sybase数据库写一个程序,又为访问Oracle数据库写另一个程序。可以用JDBC API写出唯一的程序,它能够将SQL语句发送到相应的任何一种数据库。Java与JDBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。由于Java语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点,因此,它是数据库应用的一个极好的基础语言。现在,需要找到一种能使Java应用与各种不同数据库对话的方式,而JDBC正是实现这种对话的一种机制。
一、JDBC的功能与特点
1.JDBC的基本功能
(1)建立与数据库的连接;(2)发送SQL语句;(3)处理结果。
2.JDBC是低级的API与高级API的基础
JDBC是一种“低级”的接口,因为它直接调用SQL命令,但它又可以作为构造高级接口与工具的基础。高级接口是“用户友善的”、更易理解和更为方便的API,由后台将它翻译成如JDBC这样的低级接口。有两种基于JDBC的高级API正处在开发之中:一种是嵌入SQL的Java。JDBC要求把SQL语句作为字符串传递给Java方法。嵌入SQL预处理程序,可让程序员把SQL与Java直接混合使用。另一种是把关系数据库表直接映射成Java类。在“对象/关系”的映射中,表中的每一行变成类的一个实例,每一列的值对应于该实例的一个属性。然后,程序员可直接操作Java对象,并自动生成取、存数据的SQL调用。另外,它还提供了更高级的映射,例如,在Java类中把多个表的行结合起来。
3.JDBC与ODBC及其它API的比较
目前,Microsoft的ODBC API是访问关系型数据库中应用最广的编程接口,它几乎能将所有平台的所有数据库连接起来。现在的问题是可否通过Java来使用ODBC呢?回答是肯定的,但最好的做法是在JDBC帮助下采用JDBC-ODBC桥接方式实现。需要JDBC的理由如下:
(1)Java不能直接使用ODBC。因为ODBC使用C语言接口,如果让Java来调用本机C代码的话,那会在安全、属性、健壮性、应用的可移植性等方面带来困难。
(2)不希望把ODBC C API逐字地翻译成Java API。例如,ODBC使用了大量的易于出错的指针,而Java取消了这种不安全的指针。现在通过JDBC,把ODBC翻译成具有Java风格的面向对象的接口。
(3)JDBC的Java API提供“纯Java”的解决办法。当使用ODBC时,ODBC驱动器管理程序与驱动器必须手工地装入到每架客户机上。而JDBC驱动器全部是用Java编写的,JDBC代码则在所有Java平台(从网络计算机到主机)上都可自动安装,并且是可移植的和安全的。
总之,JDBC API是一种基于SQL的抽象与概念的Java接口,它是基于ODBC的。熟悉ODBC的程序员很容易学习JDBC,JDBC保留了ODBC的基本设计功能。而且两种接口都是基于X/OpenSQL CLI(Call Level Interface)。最大的区别是JDBC保持了Java自身的风格与优点。最近,Microsoft引入了ODBC以外的新的API,包括RDO、ADO和OLE DB。其设计策略在许多方面与JDBC类似,也是一种基于ODBC类的面向对象的数据库接口。
4.保证一致性的措施
结构化查询语言(SQL)是存取关系型数据库的标准语言。尽管多数DBMS系统在基本功能上都采用SQL的标准形式,但在高级功能上它们并不遵循最新定义的标准SQL语法、语义。例如,不是所有的数据库都支持存储过程或外部连接,这样就产生了不一致。JDBC API处理这个问题的方法是允许将任何查询字符串传递给基础DBMS驱动器。JDBC处理SQL一致性问题的第二种方法是采用ODBC风格的例外条款,它提供了表示几种常见的SQL差别的标准JDBC语法。例如,有表示日期文字与存储过程定义的例外条款。
二、JDBC连接几种数据库的方式
1.Oracle8/8i/9i数据库(thin模式) Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();
String url=“jdbc:oracle:thin:@localhost:1521:orcl”;//orcl为数据库的SID
String user=“test”;
String password=“test”;
Connection conn= DriverManager.getConnection(url,user,password);
2.DB2数据库 Class.forName(“com.ibm.db2.jdbc.app.DB2Driver ”).newInstance();
String url=“jdbc:db2://localhost:5000/sample”;//sample为你的数据库名
String user=“admin”;
String password=“”;
Connection conn= DriverManager.getConnection(url,user,password);
3.Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url=“jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb”;
//mydb为数据库
String user=“sa”;
String password=“”;
Connection conn= DriverManager.getConnection(url,user,password);
参考文献:
[1]萧仁惠,陈锦辉.JDBC数据库程序设计[M].北京:中国铁道出版社,2004.2.
[2]洪伟恩.深入浅出Java 2面向对象程序设计[M].北京:中国铁道出版社,2004.5.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!