当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

用JDBC衔接数据库[Java编程]

赞助商链接



  本文“用JDBC衔接数据库[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
据预算,将近一半的软件开辟都要触及客户(机)/服务器方面的操作.Java为自己保证的一项超卓本领就是构建与平台无关的客户机/服务器数据库利用.在Java 1.1中,这一保证通过Java数据库衔接(JDBC)实现了.
数据库最主要的一个问题就是各家公司之间的规格大战.确切存在一种“尺度”数据库语言,即“构造查询语言”(SQL-92),但普通都必须切当知道自己要和哪家数据库公司打交道,不然极易出问题,固然存在所谓的“尺度”.JDBC是面向“与平台无关”计划的,所以在编程的时刻没必要关心自己要利用的是什么数据库产品.但是,从JDBC里仍有大概发出对某些数据库公司专勤奋效的调用,所以仍旧不可率性妄为.
和Java中的很多API一样,JDBC也做到了尽大概的简化.我们发出的办法调用对应于从数据库汇集数据时想当然的做法:同数据库衔接,成立一个语句并履行查询,然后处理后果集.
为实现这一“与平台无关”的特点,JDBC为我们供应了一个“驱动程序管理器”,它能动态保护数据库查询所需的全部驱动程序对象.所以假定要衔接由三家公司开辟的差别种类的数据库,就需求三个单独的驱动程序对象.驱动程序对象会在装载时由“驱动程序管理器”自动注册,并可用Class.forName()强行装载.
为翻开一个数据库,必须成立一个“数据库URL”,它要指定下述三方面的内容:
(1) 用“jdbc”指出要利用JDBC.
(2) “子协议”:驱动程序的名字大概一种数据库衔接机制的名称.由于JDBC的计划从ODBC吸取了很多灵感,所以可以选用的第一种子协议就是“jdbc-odbc桥”,它用“odbc”关键字便可指定.
(3) 数据库标识符:随利用的数据库驱动程序的差别而改变,但普通都供应了一个对比符合逻辑的名称,由数据库管理软件映射(对应)到保存了数据表的一个物理目录.为使自己的数据库标识符具有任何含义,必须用自己的数据库管理软件为自己喜好的名字注册(注册的具体历程又随运行平台的差别而改变).
全部这些信息都统一编译到一个字串里,即“数据库URL”.举个例子来说,若想通过ODBC子协议同一个标识为“people”的数据库衔接,呼应的数据库URL可设为:
String dbUrl = "jdbc:odbc:people"
假如通过一个网络衔接,数据库URL也需求包含对远程机械举行标识的信息.
预备好同数据库衔接后,可调用静态办法DriverManager.getConnection(),将数据库的URL以及进入那个数据库所需的用户名密码传送给它.得到的返回后果是一个Connection对象,操纵它便可查询和操作数据库.
下面这个例子将翻开一个联结信息数据库,并按照号令行供应的参数查询一个人的姓(Last Name).它只挑选那些有E-mail地址的人的名字,然后列印出符合查询条件的全部人:

//: Lookup.java
// Looks up email addresses in a 
// local database using JDBC
import java.sql.*;

public class Lookup {
  public static void main(String[] args) {
    String dbUrl = "jdbc:odbc:people";
    String user = "";
    String password = "";
    try {
      // Load the driver (registers itself)
      Class.forName(
        "sun.jdbc.odbc.JdbcOdbcDriver");
      Connection c = DriverManager.getConnection(
        dbUrl, user, password);
      Statement s = c.createStatement();
      // SQL code:
      ResultSet r = 
        s.executeQuery(
          "SELECT FIRST, LAST, EMAIL " +
          "FROM people.csv people " +
          "WHERE " +
          "(LAST='" + args[0] + "') " +
          " AND (EMAIL Is Not Null) " +
          "ORDER BY FIRST");
      while(r.next()) {
        // Capitalization doesn't matter:
        System.out.println(
          r.getString("Last") + ", " 
          + r.getString("fIRST")
          + ": " + r.getString("EMAIL") );
      }
      s.close(); // Also closes ResultSet
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
} ///:~
可以看到,数据库URL的成立历程与我们前面报告的完好一样.在该例中,数据库未设密码保护,所以用户名和密码都是空串.
用DriverManager.getConnection()建好衔接后,接下来可按照后果Connection对象成立一个Statement(语句)对象,这是用createStatement()办法实现的.按照后果Statement,我们可调用executeQuery(),向其传送包含了SQL-92尺度SQL语句的一个字串(不久就会看到若何自动成立这类语句,所以没必要在这里知道关于SQL更多的东西).
executeQuery()办法会返回一个ResultSet(后果集)对象,它与担当器非常类似:next()办法将担当器移至语句中的下一条记录;假如已到达后果集的末尾,则返回null.我们必定能从executeQuery()返回一个ResultSet对象,即便查询后果是个空集(也就是说,不会产生一个违例).注意在试图读取任何记录数据之前,都必须调用一次next().若后果集为空,那么对next()的这个初次调用就会返回false.关于后果集合的每条记录,都可将字段名作为字串利用(当然还有其他办法),从而挑选差别的字段.别的要注意的是字段名的大小写是无关紧急的——SQL数据库不在乎这个问题.为决意返回的范例,可调用getString(),getFloat()等等.到这个时刻,我们已经用Java的原始格局得到了自己的数据库数据,接下去可用Java代码做自己想做的任何事情了.
  以上是“用JDBC衔接数据库[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 用JDBC衔接数据库
  • 用JDBC实现通过APPLET连sql server
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .