JDBC基础知识

  • JDBC: Java Data Base Connectivity。它是为和各种常用的数据库提供连接的技术。和ODBC(OpenData Base Connectivity)很类似。
    JDBC不是Mincrosoft的ODBC(开放式数据库连接)规范派生的,JDBC完全是用Java编写的,而ODBC是个C接口。但是,JDBC和ODBC都是基于X/开放SQL命令层接口(CLI),相同的概念性基础使API工作进展更快,使API的接受更加容易。JavaSoft提供了将JDBC变成ODBC的JDBC-ODBC桥。这个用本地方法完成的版本很小很有效。

  • JDBC的工作机制
       JDBC完成对数据库的访问包括四个主要组件:Java的应用程序,JDBC驱动器管理器,驱动器和数据源。
       用JDBC来实现访问数据库记录可以采用下面的几个步骤:
       1、 通过驱动器管理器获取连接接口。
       2、 获得Statement或它的子类。
       3、 限制Statement中的参数。
       4、 执行Statement。
       5、 查看返回的行数是否超出范围。
       6、 关闭Statement。
       7、 处理其它的Statement
       8、 关闭连接接口。

  • JDBC的接口概貌
       JDBC的接口分为两个层次:
       一个是面向程序开发人员的JDBC API,它是一组抽象的java接口,应用程序可以对某个数据库打开连接,执行SQL语句并处理结果,它不需要太多的考虑数据库的产品的差别,JDBC驱动管理器会调用相应的数据库产品的驱动来解决。
       最重要的接口是:
    * java.sql.DriverManager 处理驱动的调入并且对产生新的数据库连接提供支持。
    * java.sql.Connection 代表对特定数据库的连接。
    * java.sql.Statement  代表一个特定的容器,来对一个特定的数据库执行SQL语句。
    * java.sql.ResultSet  控制对一个特定语句的行数据的存取。
    其中java.sql.Statement又有两个子类型:
    1. java.sql.PreparedStatement  用于执行预编译的SQL语句。
    2. java.sql.CallableStatement  用于执行对一个数据库内嵌过程的调用。
       另一个是低层的JDBC Drivier API,这个是驱动器级的API,对数据库低层处理,对不同的数据库产品一定要有不同的类封装。
       大部分JDBC驱动只需要完成这些JDBC API所定义的抽象类就可以了。特别地,所有的driver必须提供对java.sql.Connection, java.sql. State-ment, java.sql.Prepared-Statement, and java.sql.ResultSet的实现。如果目标DBMS提供有OUT参数的内嵌过程,那么还必须提供java.sql.CallableStatement 接口。每个database driver必须提供一个类:java.sql.Driver以使得系统可以由 java.sql.DriverManager来管理。
      一个显然的driver是在ODBC之上提供对JDBC的实现,从而提供与ODBC接口的JDBC-ODBC 桥,就象前面的图所显示的.由于JDBC放在ODBC之后,所以实现起来简单而且高效。

  • JDBC使用场合
        通常有两种情形必须分别对待:applet和application.
    4.1 Applet
      目前Java使用的最多的从网络中下载的applet,它们作为web文件的一个部分。当中有数据库存取applet和能够使用JDBC来接触数据库的applet。
    例如,一个用户可能下载一个显示股票历史价格图的applet。这个applet通过internet来从关系数据库中获得股票历史价格。
    最一般的情况里面,对applet的使用是通过不可靠的边界的。例如从另外一个公司或者Internet上获得这些applet。于是称这个情况为"Internet"场合。然而applet也可能通过局域网下载。在这个情况里面,客户机的安全都还是一个问题。
    典型的applet在几个方面与传统的数据库应用程序有所不同:
    1). 不可靠的applet被严格地限制在他们被允许执行的的操作上。特别地,不允许他们存取本地的文件,切不允许他们对任意的数据库建立网络连接。
    2). 就标识和连接网上数据库来说,Internet环境里面的applet面临新的问题。
    3). 当数据库可能与你相隔万里的时候,效率的考虑也有所不同了。与局域网相比,Internet上数据库applet可能会碰到十分不同的反应时间。
    4.2 Application
      Java也可以用来建立普通的应用,从而想一般的应用一样在客户机上使用。我们相信随着开发工具越来越多,人们开始认识到提高程序生产效率的必要性,以及Java的其他优点,Java的这种用法将越来越流行。在这种方式里面,Java的代码是可以信赖的,且被允许读写文件打开网络连接等等,就想其他的应用程序代码一样。
      也许这些Java应用使用的最多的是在一个公司内部或者在Intranet上,所以不妨成为Intranet场合。例如一个公司希望利用Java及其GUI构件工具来建立他的基于合作数据模式的合作软件。这些应用程序将存取局域网或者广域网的数据。Java应用可以作到这些。
    Java应用程序场合和Intranet场合与applet场合有诸多不同。例如标定一个数据库最自然的方式是用一个数据库的名字,就象"Customers" 和"Personnel"这样。然后用户希望系统能够定位具体的机器,DBMS,JDBC driver,和Java应用程序。
    4.3 其他场合
      还有其他一些有趣的场合:
    1). 已验证的applet(Trusted applets)是指那些已经被Java虚拟机器认定是可以信赖的applet。他们之所以被认为是可信的是因为他们已经对上了特定的密匙,或者用户认为从特定来源来的applet是可信的。在安全的方面上他们与应用(appliction)相同,但是其他方面(例如定位一个数据库)与则与applet相似。
    2). 与直接从Java GUI出发用客户/服务器模式来度曲DBMS服务器不同,三层存取方式可能被使用。在这个场合里面,Java应用程序对中间层的服务发出调用,中间层的服务在网上,它又再去调用数据库。这些调用可能通过RPC (remote procedure call)或者ORB (object request broker )。在这两种场合里面,中间层最好使用一个对象变化。我们希望三层结构会变得越来越普遍,因为对于MIS管理者来说,这可以使得他们有机会在公共数据库上显式地定义合法操作等。同时三层结构可以提供许多效率上的好处。
    目前中间层一般用C或者C++这样的语言来完成。通过优化编译器把把Java 字节代码翻译成为高效的机器代码,中间层也可以用Java来实现。Java有许多优良特性(健壮性,安全性,多线程)可以达到中间层需要达到的目的。

学习资料来源http://www.javafan.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值