荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: 编写基于DB2的Java Application和Java Applet
发信站: BBS 荔园晨风站 (Thu Jan 21 23:14:21 1999), 转信



Java与DB2数据库连接(中)

    曙光信息产业有限公司应用软件部 阎小兵
    如同上期所述,利用DB2的JDBC支持也可以建立两类应用:Java Ap
plication(应用程序和Java Applet(小应用程序)。前者通常位于客
户端,通过CAE(Client Application Enablr), 即客户应用使能器与D
B2建立联系,从而实现对数据库的访问。后者则不需要任何客户端DB2
部件,而只需要支持Java的浏览器在客户端解释执行,于是对数据库
的访问就可以在任何一种带有浏览器使能的平台上进行。
    下面我们来具体说明Java Application和Java Applet的编程。
首先假设要访问的数据源名为mydb,JDBC Applet服务器运行于TCP/IP
端口号为2222的端口上,JDBC服务器所在的服务器为cherry.ncic.ac.
cn,操作系统为AIX 4.1。

    1.引入适当的Java类
    若是Java Application,需引入java.net.URL, jva.sql.*, ibm.
sql.*;
    若是Java Applet,需引入tempjava.sql.*, ibm.netsql.*。
    2.装载适当的JDBC驱动程序
    若是Java Application,需装入ibm.sql.DB2Driver;相应的语句
为:
    Class.forName("ibm.sql.DB2Driver");
    若是Java Applet,需装入ibm.netsql.DB2Driver;相应的语句为:
    Class.forName("ibm.netsql.DB2Driver");

    3.与数据库建立连接
    通过URL与数据库建立连接,在URL中需提供数据库位置、子协议
名(subprotocol)。对于DB2,子协议名为db2。
    若是Application,其URL为:jdbc:db2:mydb。所建立的连接对象
格式如下:
    Connection con = DriverManager.getConnection("jdbc:db2:m
ydb");
    若是Applet,其URL为:jdbc:db2://cherry.ncic.ac.cn:2222/myd
b。所建立的连接对象格式如下:
    Connection con=DriverManager.getConnection(jdbc:db2://ch
erry.ncic.ac.cn:222 /mydb,userid, password );
    这里需特别指出的是,对于Applet,访问端口号必须大于1024。
    4.向数据库传递SQL语言,执行查询,并返回结果
    例如,可创建一SQL语句对象stmt:
    Statement stmt = con.createStatement
    执行查询,并返回结果:
    ResultSet rs = stmt.executeQuery("SQL语句");
    5.关闭连接
    将所建立的连接对象关闭:
    con.close();
    从上述过程可以看出Java Applet与Java Application的编程基
本类似,主要不同点表现在JDBC URL上。由于Java Application与数
据库的通信是交由CAE来完成的,所以在其JDBCU RL中,不再包含主机
名和端口号这一部分,而这些信息对于Applet来说则是必须的。
    当然,JDBC驱动程序的实现也不同,例如,对于Java Applet来说,J
DBC驱动程序为ibm.nt sql.DB2Driver,而对于Java Application,其J
DBC驱动程序为ibm.sql.DB2Driver。
    下面给出一个完整的例子程序,说明在Java Applet中如何通过JD
BC访问DB2数据库。至于Java Application,通过上面的叙述相信读者
不难写出。
    Java Applet例子程序源代码清单:
    //  源文件名:MyDB2Applet.java
    //  功能:该样例程序用于说明如何利用JDBC Applet驱动程序编
写访问
    //  DB2数据库的Java Applet
    import java.net.URL;
    import tempjava.sql.*;
    import ibm.netsql.*;
    import java.awt.Graphics;
    public class DB2Applet extends java.Applet.Applet {
      static {
        try {
         // 向DriverManager注册驱动程序
         Class.forName("ibm.netsql.DB2Driver");
        } catch (ClassNotFoundException e) {
        e.printStackTrace();
      }
    }
    public void init() {
      resize(200,100);
    }
    public void paint(Graphics g) {
      try {
         // JDBC服务器所在的机器的名字为//cherry.ncic.ac.cn
         // JDBC服务器所监听的端口号为2222
         // 数据源名为mydb
         // 构造URL
         String url = "jdbc:db2://cherry.ncic.ac.cn:2222/myd
b";
         // 要访问的数据库的用户id为myid
         String userid = "myid";
         // 与上面的id相对应的口令为mypassword
         String password = "mypassword";
         Connection con = DriverManager.getConnection(url, u
serid, passwor );
         // 从数据库中提取数据
         Statement stmt = con.createStatement();
         ResultSet rs = stmt.executeQuery("SELECT * from emp
loyee");
         g.drawString("查询结果:", 10, 25);
         // 显示结果集
         // 当不再有记录行时,rs.next()返回false
         int y = 50;
         int i = 0;
         while (rs.next() && (i<2)) {
            i++;
            String a= rs.getString(1);
            String str = rs.getString(2);
            String oneLine =  "empno= " + a + "firstname= "
+ str;
            g.drawString(oneLine, 20, y );
            y = y + 15;
         }
         stmt.close();
         // 更新数据库
         g.drawString("开始更新数据...",10, 100);
         stmt = con.createStatement();
         int rowsUpdated = stmt.executeUpdate("UPDATE employ
ee set firstnme =SI LI‘where empno = 000010’");
         // 显示被更新的记录行的行号
         String msg = "更新的行 " + rowsUpdated;
           if (1 == rowsUpdated)  msg = msg +" 单行";
           else  msg = msg +"多行";
         y = y + 40;
         g.drawString(msg, 20, y);
         stmt.close();
         // 关闭连接
         con.close();
      }
      catch( Exception e ) {
         e.printStackTrace();
      }
    }
    }

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店