单 5. 调用重载方法 update() 的应用程序
insertSql = "INSERT INTO PDQ_SC.customer (Name, Country, Street, City, " +
"Province, Zip, Phone) VALUES (:name, :country, :street, " +
":city, :province,:zip,:phone)";
//Create an instance of Customer Bean with the values to be inserted
Customer addCustomer =
new Customer("Customer2","US","BlackBerry Street","San Jose",
"Santa Clara","82652","408-273-4856", null);
//Insert using a Bean
int updateCount = data.update (insertSql, addCustomer);
批量更新
在 Data 接口中,updateMany() 方法表明一条语句要运行多次。updateMany() 方法允许传递一个集合的数据来进行遍历。
和在 JDBC 中一样,返回的 int 数组表明 SQL 语句的每次运行是成功还是失败(以及相关的更新计数)。这包括 JDBC 的更新计数、 Statement.EXECUTE_FAILED 和 SUCCESS_NO_INFO。如果出现失败,则抛出 com.ibm.pdq.runtime.exception.UpdateManyException 异常。这个运行时异常包含 JDBC 在 java.sql.BatchUpdateException 中报告的信息。
更新 Silver Castle Customer 表
每两个月,客户就可能与 Silver Castle 管理小组联系,以更新地址或电话号码。Silver Castle 开发人员可以使用单个更新 API 以新的信息更新这个表。清单 6 展示了这种 API 的使用。
清单 6. 用于更新表的单个更新 API
//Update the Street name for Customer
String updateSql = "UPDATE PDQ_SC.customer SET Street= ''Townsend'' WHERE name= ?";
int updateCount = data.update (updateSql,"Customer3");
System.out.println ("Rows Updated " + updateCount);
Silver Castle 小组还有一个网站,新客户可以登录到这个网站上,让 Silver Castle 将目录邮递给他们。每个月都会运行一个实用程序来更新 Customer 数据库,以添加这些新客户。为此,开发人员可以创建一个任务,批量处理所有请求并使用一个内联方法将它们插入到数据库中。在这种情况下,他们可以使用批量更新 API,以高效地更新数据库。清单 7 展示了批量更新 API。
pureQuery内联方法风格简介(7)
时间:2011-02-14 IBM Daya Vivek
清单 7. 批量更新 API
//Example Using UpdateMany
Customer addFirstCustomer =
new Customer("Customer3","Costa Rica","Main Street","Arenal",
"La Fortuna","90291","506-375-0273",null);
Customer addSecondCustomer =
new Customer("Customer4","Puerto Rico","Church Street",
"Puerto Nuevo","San Juan","38364","293-484-8244",null);
ArrayList<Customer> customerList = new ArrayList<Customer>();
customerList.add (addFirstCustomer);
customerList.add (addSecondCustomer);
insertSql = "INSERT INTO PDQ_SC.customer (Name, Country, Street, City, " +
"Province, Zip, Phone) VALUES (:name, :country, :street, " +
":city, :province,:zip,:phone)";
int[] updateCount = data.updateMany( sql, customerList);
if (updateCount != null)
System.out.println ("Rows Inserted:” + updateCount.length);
检索自动生成的值
update() 方法的重载使用户 |