zoukankan      html  css  js  c++  java
  • DB2 9 运用斥地(733 检验)认证指南,第 7 部分: Java 编程(4)

    developerWorks








    用 JDBC 读取和更新数据

    概述

    在本末节中,将进修怎样运用 StatementPreparedStatement JDBC 东西,这些东西吐露体现 JDBC 中的 SQL 语句。还将进修怎样运用 JDBC ResultSet 东西,这个东西是由包孕 SQL 盘问的 StatementPreparedStatement 东西前往的。

    Statement 东西

    Statement 东西是运用 Connection.createStatement() 要领创立的。例如:

    Statement stmt;
    ...
    stmt = con.createStatement();
    


    为了实施 Statement 东西中的 INSERTUPDATEDELETE 语句,要将一个带有语句的字符串传递给 Statement.executeUpdate() 要领。例如:

    stmt.executeUpdate("DELETE FROM EMPLOYEE WHERE EMPNO = '000099'");
    



    为了运用 Statement 东西实施盘问,要将带有 SELECT 语句的字符串传递给 Statement.executeQuery() 要领,而且检索 ResultSet 东西。例如:

    ResultSet rs;
    rs = stmt.executeQuery("SELECT EMPNO, LASTNAME FROM EMPLOYEE");
    


    为体会析 ResultSet 东西,必须起首运用 ResultSet.next() 要领读取每一行。然后在每次读取之后,运用合适该数据典范的要领(例如 ResultSet.getInt())检索列值。

    rs = stmt.executeQuery("SELECT LASTNAME, BIRTHDATE FROM EMPLOYEE");
    while (rs.next()) {
      System.out.println(rs.getString(1)   ", "   rs.getDate(2));
    }
    







    回页首



    Statement 东西:示例代码

    下列运用程序演示在前一末节中联系的十足看法:

    • 创立 Statement 东西
    • 实施 INSERTUPDATEDELETE 语句
    • 实施 SQL 盘问
    • 分解 ResultSet 东西

    这个运用程序向 Employee 表中拔出一条雇员记载,然后对这个表运转一个盘问,苦求得到每一条记载的雇员编号和雇员姓氏。

    //StmtDb.java
    import java.sql.*;
    >

    为了编译以上文件(名为 StmtDb.java),要实施下列命令:

    javac StmtDb.java
    


    为了运转已编译好的运用程序,要实施下列命令:

    java StmtDb
    


    这个运用程序的输出应该如下所示:

    Employee #  Employee surname
    000010      HAAS
    000020      THOMPSON
    000030      KWAN
    000050      GEYER
    000060      STERN
    000070      PULASKI
    000090      HENDERSON
    000100      SPENSER
    000110      LUCCHESSI
    000120      O'CONNELL
    000130      QUINTANA
    000140      NICHOLLS
    000150      ADAMSON
    000160      PIANKA
    000170      YOSHIMURA
    000180      SCOUTTEN
    000190      WALKER
    000200      BROWN
    000210      JONES
    000220      LUTZ
    000230      JEFFERSON
    000240      MARINO
    000250      SMITH
    000260      JOHNSON
    000270      PEREZ
    000280      SCHNEIDER
    000290      PARKER
    000300      SMITH
    000310      SETRIGHT
    000320      MEHTA
    000330      LEE
    000340      GOUNOT
    200010      HEMMINGER
    200120      ORLANDO
    200140      NATZ
    200170      YAMAMOTO
    200220      JOHN
    200240      MONTEVERDE
    200280      SCHWARTZ
    200310      SPRINGER
    200330      WONG
    200340      ALONZO
    000099      DEROOS
    







    回页首



    PreparedStatement 东西

    PreparedStatement 东西是运用 Connection.prepareStatement() 要领创立的。例如:

    PreparedStatement stmt;
    ...
    stmt = con.prepareStatement();
    


    议决运用 PreparedStatement 东西,可以静态地准备和实施 SQL 语句。议决从新绑定 SQL 语句中参数标志的值,可以用分比如的值频频实施相反的语句。(参数标志是由 ? 吐露体现的,它充任一个在运转时截至赋值的值的占位符)。例如:

    pStmt = con.prepareStatement("UPDATE STAFF SET COMM=? WHERE ID=?");
    pStmt.setDouble(1,710.53);
    pStmt.setInt(2,350);
    pStmt.executeUpdate();
    pStmt.setDouble(1,710.53);
    pStmt.setInt(2,350);
    pStmt.executeUpdate();
    


    关于参数标志的更多信息,请阅读本系列中的第 8 篇文章(拜见 参考材料 一节)。





    回页首



    PreparedStatement 东西:示例代码

    下列运用程序演示在前一末节中联系的十足看法:

    • 创立 PreparedStatement 东西。
    • 运用参数标志静态地指派 SQL 语句中的值。

    这个运用程序分解一个由称号和义务头衔组成的数组。关于每个数组项,它向 staff 表中拔出一条记载。

    //pStmtDb.java
    import java.sql.*;
    >

    为了编译以上文件(名为 pStmtDb.java),要实施下列命令:

    javac pStmtDb.java
    


    为了运转已编译好的运用程序,要实施下列命令:

    java pStmtDb
    


    这个运用程序的输出应该如下所示:

    Employee #  Employee surname
    401         Smyth
    402         Hemsky
    403         Horcoff
    







    回页首



    提交事故

    StatementPreparedStatement 示例代码中,运用了两种分比如的要领来提交事故:自动提交(autocommit)和手工提交(manual commit)。

    Statement 示例中所运用的要领是自动提交,即自动提交每个语句。自动提交是从 Connection 东西启用的,命令如下:

    con.setAutoCommit(true);
    


    与从前的版天职比如,在启用自动提交的形态下,假如实施 Connection.Commit()Connection.Rollback(),IBM DB2 通用 JDBC 和 SQLJ 驱动程序的 DB2 9 版本就会抛出非常。

    PreparedStatement 示例中所运用的要领是手工提交。在这种要领中,要么手工提交每条语句,要么回滚每条语句。假如运用程序末端未提交语句,这些语句将自动回滚。手工提交或回滚操作是由 Connection 东西来实施的,如下:

    con.commit();
    ...
    con.rollback();
    







    回页首



    实施分布式事故

    为了从 Java 运用程序实施分布式事故,需求运用 Java Transaction API(JTA)。(分布式事故也称作两阶段提交事故,这些事故将更新多个数据库中的数据。)JTA 典范是 Java 2 Platform,Enterprise Edition(J2EE)标准的事故操持组件。

    在 DB2 中,分布式事故是议决 DB2XADataSource 类操持的,该类完成 javax.sql 包中的 XADataSource 接口。

    关于 DB2 9,在 IBM DB2 通用 JDBC 和 SQLJ 驱动程序和 DB2 JDBC Type 2 驱动程序中都供应了 JTA 支持。下列 Java 代码运用 IBM DB2 通用 JDBC 和 SQLJ 驱动程序创立 DB2XADataSource 类的一个实例:

    DB2XADataSource db2ds = new com.ibm.db2.jcc.DB2XADataSource();
    





    版权声明: 原创作品,容许转载,转载时请务必以超链接方式标明文章 原始情由 、作者信息和本声明。不然将深究司法责任。

  • 相关阅读:
    工厂设计模式
    Java 注解 (Annotation)你可以这样学
    java的多线程和并发库
    NIO高并发基础
    Java编写画图板程序细节-保存已画图形
    程序员必须知道的知识
    慢慢读懂经济【持续更新】-经济浅谈
    Spring IOC与AOP的简单实现
    Python网络爬虫【持续更新】-BeautifulSoup库的使用
    Python网络爬虫【持续更新】-requests库的使用
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1972828.html
Copyright © 2011-2022 走看看