刚接触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并不easy学习,它将简单特性和复杂特性混杂在一起,甚至对很easy的查询都有复杂的选项。而JDBC刚好相反,它保持了简单事物的简单性,但又同意复杂的特性

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

总而言之,JDBCAPI是能体现SQL最基本抽象概念的、最直接的Java接口。它建构在ODBC的基础上,因此,熟悉ODBC的程序猿将发现学习JDBC很easy。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、   装载驱动。

装载驱动程序仅仅须要很easy的一行代码。比如,你想要使用 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怎样建立各个数据库的连接

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

   Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";

   //mydb为数据库

   String user="sa";

   String password="";

   Connection conn= DriverManager.getConnection(url,user,password);

4、Sybase数据库

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

5、Informix数据库

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

 6、MySQL数据库

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

7、PostgreSQL数据库

   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的规范,敬请期待!

JAVA(2)——JDBC的更多相关文章

  1. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

  2. JAVA使用JDBC技术操作SqlServer数据库执行存储过程

    Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...

  3. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  4. Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

    Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子   时间:2012-11-20 17:54:02   Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...

  5. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  6. 基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表

    基于CDH5.x 下面使用eclipse 操作hive .使用java通过jdbc连接HIVESERVICE 创建表 import java.sql.Connection; import java.s ...

  7. java之JDBC

    java之JDBC 一.什么是JDBC Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提 ...

  8. java 调用jdbc 实现excel和csv的导入和导出

    jdbc 的连接 实体类 package com.gpdi.mdata.web.manage.database.data;public class DBQueryData {private Strin ...

  9. Java的JDBC事务详解

    Java的JDBC事务详解         分类:             Hibernate              2010-06-02 10:04     12298人阅读     评论(9) ...

  10. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

随机推荐

  1. UVA 11600-Masud Rana(状压,概率dp)

    题意: 有n个节点的图,开始有一些边存在,现在每天任意选择两点连一条边(可能已经连过),求使整个图联通的期望天数. 分析: 由于开始图可以看做几个连通分量,想到了以前做的一个题,一个点代表一个集合(这 ...

  2. bjfu1252 贪心

    题目意思是给出一些开区间,这些区间有的相交,有的不相交,问你能否选出一些区间,使这些区间之间都不相交,并且选出的区间数最大. 这是个典型的贪心问题了.按区间的结束位置排序,然后顺序地选取区间,只要当前 ...

  3. Linux基本命令(2)有关磁盘空间的命令

    有关磁盘空间的命令 命令 功能 mount 挂载文件系统 umount 卸载已挂载上的文件系统 df 检查各个硬盘分区和已挂上来的文件系统的磁盘空间 du 显示文件目录和大小 fsck 主要是检查和修 ...

  4. iOS数据存储之对象归档

    iOS数据存储之对象归档 对象归档 对象归档是iOS中数据持久化的一种方式. 归档是指另一种形式的序列化,但它是任何对象都可以实现的更常规的类型.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文 ...

  5. AAC 格式分析

    一直在做一个语音项目,到了测试阶段,近来不是很忙,想把之前做的内容整理一下. 关于AAC音频格式基本情况,可参考维基百科http://en.wikipedia.org/wiki/Advanced_Au ...

  6. BootStrap入门教程 (一) :手脚架Scaffolding(全局样式(Global Style),格网系统(Grid System),流式格网(Fluid grid System),自定义(Customing),布局(Layouts))

    2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK ...

  7. PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置

    配置方法在网上可以搜到很多,一步步来就好了,但是由于步骤比较多,需要耐心仔细一点点,这是我自己记录的成功步骤: 1.PHP+Apache+MySQL的安装:PHP网站开发 2.phpMyAdmin的配 ...

  8. AIM Tech Round 3

    题目链接:(做出几道说几道^_^) A.Juicer B.Checkpoints C.Letters Cyclic Shift 思路: A题每次加上橘子的体积,超过就清零,计数器加1 B题比较 (lo ...

  9. HDU 1272 小希的迷宫 (并查集)

    小希的迷宫 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/L Description 我们的小伙伴Bingo身为大二学长,他乐于 ...

  10. JSF 2 hidden value example

    In JSF, you can use the <h:inputHidden /> tag to render a HTML hidden value field. For example ...