WEB开发网
开发学院软件开发Java 学习如何用 Jython 编写 DB2 JDBC 工具 阅读

学习如何用 Jython 编写 DB2 JDBC 工具

 2009-12-08 00:00:00 来源:WEB开发网   
核心提示: 清单 7. (batchinsert.jy)createEmployee 函数fromjava.langimport*fromjava.sqlimport*importsysdefcreateEmployee(**args):globalstmtsqlTemplate="INSERTi


清单 7. (batchinsert.jy)createEmployee 函数
from java.lang import * 
from java.sql import * 
import sys 
def createEmployee(**args): 
  global stmt 
  sqlTemplate= 
  "INSERT into EMPLOYEE (EMPNO,FIRSTNAME,MIDINIT,LASTNAME,SALARY,SEX,EDLEVEL, HIREDATE, WORKDEPT,JOB) 
  values ((select RTRIM(CHAR(MAX(INT(EMPNO))+1)) from EMPLOYEE), 
  '%(firstName)s', '%(midinit)s','%(lastName)s', 
  %(salary).2f,'%(sex)s' ,18, CURRENT DATE,'%(workdept)s','%(job)s')" 
  # dictionary based SQL string formatting 
  sql=sqlTemplate % args 
   
  stmt.addBatch(sql) 
   
# load DB2 JDBC type 2 driver 
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance() 
con = DriverManager.getConnection( 'jdbc:db2:sample', 'vyang','jythonrocks'); 
con.setAutoCommit(0) 
stmt = con.createStatement() 
execfile(sys.argv[1]) 
stmt.executeBatch() 
stmt.close() 
# commit 
con.commit() 
con.close() 

这里有许多新内容。

con.setAutoCommit(0) 用于关闭自动提交(auto commit),就像 JDBC 调用中的 con.setAutoCommit(false) 一样。

用于成批插入的 stmt.addBatch(sql) 、 stmt.executeBatch() 能有效地加快批量插入的速度。该技术还在 Neo 的加载仿真器中用于进行大容量的插入。

global stmt 将使 stmt 成为一个共享的全局变量,很适用于该环境中。

def createEmployee(**args) 接收参数为字典 args ,并显示 Jython 函数声明是多么灵活。

sql=sqlTemplate % args 使用基于字典的 SQL 字符串格式化,我们在 select2.jy 中已经了解。

结束语

本文中,我们展示了一些简单示例,可作为开发人员进行探索的起点。我们相信在继续探索时,还会有更多益处和问题。

此外,Jython 得益于与巨大 Java 库以及诸如 IBM DB2 JDBC 驱动程序这样的 API 的无缝集成。基于其语言特征,Jython 非常适合于自动化测试和加载测试等任务,这些任务都需要快速的应用程序开发。正如 Charming Jython中所描述的,“Jython 绝不是要您抛弃 Java 语言。Jython 会是一个非常方便的补充,对于快速检查和构造原型、测试以及处理那些比较适合使用其方法的编码任务是很有用的。”

本文示例源代码或素材下载

上一页  4 5 6 7 8 9 

Tags:学习 如何 Jython

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接