JAVA(2)——JDBC

来源:互联网 发布:淘宝装修代码在线 编辑:程序博客网 时间:2024/06/10 14:57

    刚接触JDBC的时候,有时候就在想,为什么java要用JDBC,而不是直接使用之前在VB中就学习过的ODBC,因为ODBC是在JDBC之前出现,所以ODBC肯定因为无法完成某些操作或者不能很顺利的完成某些操作,所以才有了JDBC的出现,那么,在JAVA的使用中,JDBC交ODBC到底有哪些优势呢?

    那么,先简单的介绍一下ODBC:

    开放数据库互连(Open DatabaseConnectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。到目前为止,微软的ODBC可能是用得最广泛的访问关系数据库的API。它提供了连接几乎任何一种平台、任何一种数据库的能力。

    那么,为什么不直接从Java中直接使用ODBC呢?

    回答是可以从Java中使用ODBC,但最好在JDBC的协助下,用JDBC-ODBC桥接器实现。那么,为什么需要JDBC呢?要回答这个问题,有这么几个方面:

    1)ODBC并不适合在Java中直接使用。ODBC是一个C语言实现的API,从Java程序调用本地的C程序会带来一系列类似安全性、完整性、健壮性的缺点

    2)其次,完全精确地实现从C代码ODBC到JavaAPI写的ODBC的翻译也并不令人满意。比如,Java没有指针,而ODBC中大量地使用了指针,包括极易出错的空指针“void*”。因此,对Java程序员来说,把JDBC设想成将ODBC转换成面向对象的API是很自然的。

    3)ODBC并不容易学习,它将简单特性和复杂特性混杂在一起,甚至对非常简单的查询都有复杂的选项。而JDBC刚好相反,它保持了简单事物的简单性,但又允许复杂的特性

    4)JDBC这样的JavaAPI对于纯Java方案来说是必须的。当使用ODBC时,人们必须在每一台客户机上安装ODBC驱动器和驱动管理器。如果JDBC驱动器是完全用Java语言实现的话,那么JDBC的代码就可以自动的下载和安装,并保证其安全性,而且,这将适应任何Java平台,从网络计算机NC到大型主机Mainframe。

    总而言之,JDBCAPI是能体现SQL最基本抽象概念的、最直接的Java接口。它建构在ODBC的基础上,因此,熟悉ODBC的程序员将发现学习JDBC非常容易。JDBC保持了ODBC的基本设计特征。实际上,这两种接口都是基于X/OPENSQL的调用级接口(CLI)。它们的最大的不同是JDBC是基于Java的风格和优点,并强化了Java的风格和优点。

 

    所以,总结上面JDBC相对于ODBC的优点,我们也可以总结出JAVA安全、完整、健壮、易学习、可移植性的特点,这也正好是在JAVA总结(1)中提到的一些特点,既然JDBC有这么多优点,那么我们现在就系统的介绍一下JDBC.

   JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JDBC API的工作原理


JDBC的使用方法:

    1、   装载驱动。

    装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它:

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    你的驱动程序文档将告诉你应该使用的类名。例如, 如果类名是 jdbc.DriverXYZ ,你将用代码以下的代码装载驱动程序:

        Class.forName("jdbc.DriverXYZ");

     加载 Driver 类后,它们即可用来与数据库建立连接。

    2、   建立连接

    第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做法:

        Connection con =DriverManager.getConnection(url, "myLogin", "myPassword");

JDBC如何建立各个数据库的连接

 1Oracle8/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);


2DB2数据库

   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);


3Sql Server7.0/2000数据库

   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();   Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";   //mydb为数据库   String user="sa";   String password="";   Connection conn= DriverManager.getConnection(url,user,password);


4Sybase数据库

   Class.forName("com.sybase.jdbc.SybDriver").newInstance();   String url =" jdbc:sybase:Tds:localhost:5007/myDB";   //myDB为你的数据库名   Properties sysProps = System.getProperties();   SysProps.put("user","userid");   SysProps.put("password","user_password");   Connection conn= DriverManager.getConnection(url, SysProps);


5Informix数据库

   Class.forName("com.informix.jdbc.IfxDriver").newInstance();   String url =   "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;   user=testuser;password=testpassword";   //myDB为数据库名   Connection conn= DriverManager.getConnection(url);


 6MySQL数据库

   Class.forName("org.gjt.mm.mysql.Driver").newInstance();   String url="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicod   e=true&characterEncoding=8859_1"   //myDB为数据库名   Connection conn= DriverManager.getConnection(url);


7PostgreSQL数据库

   Class.forName("org.postgresql.Driver").newInstance();   String url ="jdbc:postgresql://localhost/myDB"   //myDB为数据库名   String user="myuser";   String password="mypassword";   Connection conn= DriverManager.getConnection(url,user,password);


 

到此,已经对JDBC有了一定的了解,想要了解其他javaEE的规范,敬请期待!


2 0
原创粉丝点击