第六章JDBC高级应用.doc
文本预览下载声明
第六章 JDBC高级应用
例6.1 本例是一个使用PreparedStatement语句的综合实例。(源程序UpdateCoffees2.java)
程序中的SQL语句模板含有三个通配符,即有三个参数。程序用数组保存需要绑定的值,然后用循环语句依次读入并按指定的参数位置绑定到通配符中。
//引入JDBC类包
import java.sql.*;
public class UpdateCoffees2 {
public static void main(String args[]) {
String url = jdbc:odbc:MyDB;//建立数据库URL
Connection con;//创建一个连接对象
PreparedStatement updateSalesAndTotal;//创建预编译对象
String updateString = UPDATE COFFEES +
SET SALES = ? ,TOTAL = ? +
WHERE COF_NAME LIKE ?;
//把绑定值事先存储在数组中
int [] salesForWeek = {175, 150, 60, 155, 90};
int [] totalToDate = {200, 200, 125, 210, 185};
String [] coffees = {Colombian, French_Roast, Espresso,
Colombian_Decaf, French_Roast_Decaf};
int len = coffees.length;
try {
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);//装载驱动程序
} catch(java.lang.ClassNotFoundException e) {
System.err.print(ClassNotFoundException: );
System.err.println(e.getMessage());
}
try {
con = DriverManager.getConnection(url);//建立与数据库的连接
updateSalesAndTotal = con.prepareStatement(updateString);
for(int i = 0; i len; i++) {//用循环读入绑定值
updateSalesAndTotal.setInt(1, salesForWeek[i]);
updateSalesAndTotal.setInt(2, totalToDate[i]);
updateSalesAndTotal.setString(3, coffees[i]);
updateSalesAndTotal.executeUpdate();
}
updateSalesAndTotal.close();//关闭PreparedStatement对象
con.close();//关闭当前与数据库的连接
} catch(SQLException ex) {
System.err.println(SQLException: + ex.getMessage());
}
}
}
程序的运行结果即更新了COFFEES表中SALES和TOTAL列的值。如下表所示:
表6-1 更新后的COFFEES表
COF_NAME SUP_ID PRICE SALES TOTAL Colombian 101 7.99 175 200 French_Roast 49 8.99 150 200 Espresso 150 9.99 60 125 Colombian_Decaf 101 8.99 155 210 French_Roast_Decaf 49 9.99 90 185 另外,我们观察到totalToDate数组的前两项内容相同,都是200,因此我们还有另外一种代码编写方法,如下所示:
con = DriverManager.getConnection(url);//建立与数据库的连接
updateSa
显示全部