My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 程序开发 > 编程语言 > Java > Struts/Hibernate
Java Workshop--(2) PreparedStatement
作者:未知 时间:2005-07-24 21:22 出处:JR 责编:My FAQ
              摘要:Java Workshop--(2) PreparedStatement
首先,公布一下第一期的答案:
JPC_JDBCSample1.java

  1. //+++ (1)Import the JDBC package
  2. import java.sql.*;
  3. class JPC_JDBCSample1 {
  4.  public static void main(java/lang/String.java.html" target="_blank">String args[]) {
  5.   java/sql/Connection.java.html" target="_blank">Connection con = null;
  6.   java/sql/Statement.java.html" target="_blank">Statement stmt = null;
  7.   java/lang/String.java.html" target="_blank">String sql = null;
  8.   java/sql/ResultSet.java.html" target="_blank">ResultSet rs = null;
  9.   
  10.   try {
  11.    // Load the driver
  12.    java/lang/Class.java.html" target="_blank">Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
  13.    // Set JDBC URL in a variable
  14.    // The URL is jdbc:db2:dbname
  15.    java/lang/String.java.html" target="_blank">String url = "jdbc:db2:sample";
  16.    
  17.    //+++ (2) Connect to the DB specified by the JDBC URL
  18.    //+++     with the user ID (db2admin) and the password (password).
  19.    con = java/sql/DriverManager.java.html" target="_blank">DriverManager.getConnection(url,"db2admin","password");
  20.    //+++ (3) Create a Statement object
  21.    stmt = con.createStatement();
  22.    //+++ (4) Specify SQL statement
  23.    sql = "SELECT DEPTNUMB,DEPTNAME FROM org";
  24.    //+++ (5) Execute a query
  25.    rs = stmt.executeQuery(sql);
  26.    // Retrieve the result from ResultSet and display it
  27.    //+++ (6) Move the cursor down one row from its current position
  28.    while (rs.next()) {
  29.     
  30.     //+++(7) Get a department no, specifying a column name
  31.     short dno = rs.getShort("DEPTNUMB");
  32.     
  33.     //+++(8) Obtain a department name by specifying a column no
  34.     java/lang/String.java.html" target="_blank">String dname = rs.getString(2);
  35.     java/lang/System.java.html" target="_blank">System.out.print(" NO= " + dno);
  36.     java/lang/System.java.html" target="_blank">System.out.println(": " + dname );
  37.    }
  38.    
  39.   } catch (java/lang/ClassNotFoundException.java.html" target="_blank">ClassNotFoundException e){
  40.    e.printStackTrace();
  41.   } catch (java/sql/SQLException.java.html" target="_blank">SQLException e) {
  42.    while (e != null) {
  43.     java/lang/System.java.html" target="_blank">System.err.println(e.getMessage());
  44.     e = e.getNextException();
  45.    }
  46.   }finally{
  47.    try{
  48.     // Release resources
  49.     rs.close();
  50.     stmt.close();
  51.     con.close();
  52.    }catch(java/sql/SQLException.java.html" target="_blank">SQLException e){
  53.     e.printStackTrace();
  54.    }
  55.   }
  56.  }
  57. }



你对了吗?下面我们开始第二个PreparedStatement,这里注释比较全,如果大家需要中文注释,请告诉我

2. PreparedStatement

在这个练习里面,你将用PreparedStatement 对象来开发一个程序传送sql数据库中。
这里程序从外部的命令行里接受了一个参数。根据这个参数作为查询条件来从数据库中查询到相应的纪录。我给除了运行后的结果。



Database    :sample
Schema    :db2admin
Table        :org
User ID        :db2admin
Password    :password
DEPTNUMB DEPTNAME          MANAGER    DIVISION    LOCATION
10    Head Office    160    Corporate    New York
15      New England    50    Eastern    Boston
20    Mid Atlantic    10    Eastern    Washington
38    South Atlantic    30    Eastern    Atlanta
42    Greek Lakes    100    Midwest    Chicago
51    Plains    140    Midwest    Dallas
66    Pacific    270    Western    San Francisco
84    Mountain    290    Western    Denver


JPC_JDBCSample2.java

Fill in [ 1 ] - [ 5 ] and complete the application.
  1. import java.sql.*;
  2. class JPC_JDBCSample2 {
  3.  public static void main(java/lang/String.java.html" target="_blank">String args[]) {
  4.   java/sql/Connection.java.html" target="_blank">Connection con = null;
  5.   java/sql/PreparedStatement.java.html" target="_blank">PreparedStatement pstmt = null;
  6.   java/lang/String.java.html" target="_blank">String sql = null;
  7.   java/sql/ResultSet.java.html" target="_blank">ResultSet rs = null;
  8.   java/lang/String.java.html" target="_blank">String div = null// Division
  9.   short total= 0; // Total amount of managers
  10.   
  11.   // Set a String input in command line as in the division variable
  12.   if(args.length >0){
  13.    div = args[0];
  14.   }else{
  15.    java/lang/System.java.html" target="_blank">System.out.println("Please input a division");
  16.    return;
  17.   }
  18.   
  19.   try {
  20.    // Load the driver
  21.    java/lang/Class.java.html" target="_blank">Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
  22.    // Set JDBC URL in a variable
  23.    // The URL is jdbc:db2:dbname
  24.    java/lang/String.java.html" target="_blank">String url = "jdbc:db2:sample";
  25.    
  26.    // Connect to the DB specified by the JDBC URL
  27.    // with the user ID (db2admin) and the password (password)
  28.    con = java/sql/DriverManager.java.html" target="_blank">DriverManager.getConnection(url,"db2admin","password");
  29.    // +++(1) Specify a SQL statement
  30.    sql = "[ 1 ]";
  31.    
  32.    // +++(2) Create a PreparedStatement object
  33.    pstmt = con.[ 2 ];
  34.    
  35.    // +++(3) Set a parameter in the PreparedStatement object
  36.    pstmt.[ 3 ];
  37.    // +++(4) Execute a query
  38.    rs = pstmt.[ 4 ];
  39.    
  40.    // +++(5)(6)Retrieve the result from the ResultSet 
  41.                   // +++      object and display it
  42.    java/lang/System.java.html" target="_blank">System.out.println("***** " + div + " *****");
  43.    while (rs.next()) {
  44.     java/lang/String.java.html" target="_blank">String dname  = [ 5 ];
  45.     short manager = [ 6 ];
  46.     java/lang/System.java.html" target="_blank">System.out.print( dname+": ");
  47.     java/lang/System.java.html" target="_blank">System.out.println( manager);
  48.     total += manager;
  49.    }
  50.    java/lang/System.java.html" target="_blank">System.out.println("Total: "+total);
  51.    
  52.   } catch (java/lang/ClassNotFoundException.java.html" target="_blank">ClassNotFoundException e){
  53.    e.printStackTrace();
  54.   } catch (java/sql/SQLException.java.html" target="_blank">SQLException e) {
  55.    e.printStackTrace();
  56.   }finally{
  57.    try{
  58.     // Release resources
  59.     rs.close();
  60.     pstmt.close();
  61.     con.close();
  62.    }catch(java/sql/SQLException.java.html" target="_blank">SQLException e){
  63.     e.printStackTrace();
  64.    }
  65.   }
  66.  }
  67. }



Instruction

 Open a command prompt window and change to the lab directory(d:/JPC/Ex/JDBC/). Compile your application.

javac JPC_JDBCSample2.java

 Run your application with a division (Western, Eastern, etc.).  
     
java JPC_JDBCSample2 Western

Demonstration
>java Sample2 Western
***** Western *****
Pacific: 270
Mountain: 290
Total: 560


 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有