成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何進行Jython數據庫插入(JDBC)

開發 后端
本文介紹了如何進行Jython數據庫插入。本文節選自IBMDW一篇講述使用Jython編寫JDBC工具的文章。

假定 Joe 是一名 QA,他需要為功能測試在 SAMPLE 數據庫中創建新的雇員。在 Jython 中,Joe 進行少量工作就可以編寫他自己的腳本,進行Jython數據庫插入。

例如,Joe 可以在 SAMPLE 數據庫中通過運行“jython batchinsert.jy joescript.txt”,創建三名新雇員。

清單 6. joescript.txt

  1. createEmployee(firstName='JOHN',midinit='M',lastName='DOE',salary=32888.55,sex='M',workdept='A01',  
  2. job='DESIGNER')  
  3. createEmployee(firstName='MANAGER',midinit='M',lastName='DOE',salary=50000,sex='M',workdept='A01',  
  4. job='MANAGER')  
  5. createEmployee(firstName='SARA',midinit='M',lastName='DOE',salary=40000,sex='F',workdept='C01',  
  6. job='DESIGNER'

如果 Joe 想要添加另一名 Employee,就只需用他喜歡的文本編輯器編輯“joescript.txt”。

Jython數據庫插入的腳本背后的功能十分簡單。Jython 有一個名為 execfile(filename) 的內置函數。如果我們將 createEmployee() 實現為 Jython 函數,用于向 EMPLOYEE 表插入一行記錄,那么 execfile('joescript.txt') 將按照 Joe 需要的數目插入雇員。

換言之,我們利用 Jython 的解釋器,并可以為 Joe 派生一個像這樣的小的測試語言。該解決方案也是可擴展的。如果 Joe 需要在腳本中刪除或更新雇員,就只需要添加另一函數。對于 Joe 來說,最酷的事情就是學習曲線很短。他可以立刻編寫這樣的腳本,而沒有意識到正在進行 Jython 函數調用。

清單 7. (batchinsert.jy)createEmployee 函數

  1. from java.lang import *  
  2. from java.sql import *  
  3. import sys  
  4. def createEmployee(**args):  
  5.     global stmt  
  6.     sqlTemplate=  
  7.     "INSERT into EMPLOYEE (EMPNO,FIRSTNAME,MIDINIT,LASTNAME,SALARY,SEX,EDLEVEL, HIREDATE, WORKDEPT,JOB)   
  8.     values ((select RTRIM(CHAR(MAX(INT(EMPNO))+1)) from EMPLOYEE),   
  9.     '%(firstName)s''%(midinit)s','%(lastName)s',   
  10.     %(salary).2f,'%(sex)s' ,18, CURRENT DATE,'%(workdept)s','%(job)s')"   
  11.     # dictionary based SQL string formatting  
  12.     sql=sqlTemplate % args  
  13.       
  14.     stmt.addBatch(sql)  
  15.       
  16. # load DB2 JDBC type 2 driver  
  17. Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance()  
  18. con = DriverManager.getConnection( 'jdbc:db2:sample''vyang','jythonrocks');  
  19. con.setAutoCommit(0)  
  20. stmt = con.createStatement()  
  21. execfile(sys.argv[1])  
  22. stmt.executeBatch()  
  23. stmt.close()  
  24. # commit  
  25. con.commit()  
  26. con.close() 

Jython數據庫插入的這部分有許多新內容。

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 中已經了解。

【編輯推薦】

  1. Jython開發的JUnit測試包
  2. 創建Jython類的過程探討
  3. 輕松創建Jython全局函數
  4. 直接在源文件中編寫Jython代碼
  5. Jython入門指導:語言特性簡介
責任編輯:yangsai 來源: IBMDW
相關推薦

2010-02-04 17:42:15

Android數據庫

2010-05-24 14:57:03

MySQL數據庫表

2011-05-25 00:00:00

數據庫設計

2009-02-02 13:43:19

故障檢測數據庫

2021-07-28 15:44:52

Java開發數據庫

2011-08-04 18:00:47

SQLite數據庫批量數據

2010-08-17 09:48:40

DB2 分區數據庫

2009-07-16 11:04:17

Jython連接數據庫

2020-09-07 12:59:10

NoSQL數據庫數據

2009-07-10 16:54:50

Jython安裝連接多個數據庫jython

2018-09-17 16:12:03

數據庫數據恢復SQL Server

2009-07-16 17:22:56

JDBC數據庫編程

2009-07-06 17:23:34

JDBC連接數據庫

2022-06-29 09:14:45

PolarDB云原生數據庫

2010-01-05 14:32:01

JSON 數據

2009-07-15 16:23:54

Java JDBC

2009-07-20 15:56:08

JDBC連接數據庫步驟

2010-06-04 09:33:28

連接MySQL數據庫

2009-07-14 17:18:23

JDBC怎么連接數據庫

2009-07-07 17:42:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片大全 | 在线啊v | 精品国产久 | 亚洲精品中文字幕av | 国产精品久久久亚洲 | www狠狠爱com | 日韩欧美在线不卡 | 九九热这里 | 日韩在线中文 | 久久成人午夜 | 91精品国产91久久久久久不卞 | 欧美日韩中文在线 | 精品在线播放 | 妖精视频一区二区三区 | 日中文字幕在线 | 一区福利视频 | 97伦理电影网 | 浮生影院免费观看中文版 | 亚洲一区二区视频在线观看 | 羞羞视频网 | 欧美日韩高清一区二区三区 | 国产精品69毛片高清亚洲 | 国产精品国产成人国产三级 | 超级黄色一级片 | 国产一区二区三区视频 | 三级黄色片在线播放 | 亚洲成人网在线播放 | 欧美一区 | 五月激情婷婷在线 | 香蕉久久久 | 国产精品久久久久久久久久久久久 | 久久视频精品 | 亚洲欧洲av在线 | 日韩精品视频在线免费观看 | 日本高清精品 | 网黄在线| 国产精品视频偷伦精品视频 | 自拍中文字幕 | 亚洲永久| 欧美影院 | 久久综合影院 |