zxJDBC 讓開發者可以使用 Python DBI 2.0 標準去使用 JDBC,使用這個最大的好處是 JDBC driver 很多,用這個可以不用擔心找不到 driver 的問題。
這裡大量使用了 with 來讓 connection 自動關閉,由於 Jython 2.5 還沒有支援 with 敘述,使用的時候都得先用 from __future__ import with_statement 才行。
在建 cursor 時,可以帶 boolean 進去,True 的話表示是 dynamic cursor,因為沒有整個取回本地端,所以可以大幅降低記憶體用量,缺點就是無法取得 row count。
使用 cursor.tables(None, None, '%', ('TABLE',)) ,再去 cursor.fetchall() ,就可以取得 database 裡的所有 table。
使用 cursor.callproc('proc_test') 可以呼叫資料庫裡的 procedure
cursor 有一個 datahandler 的屬性,設置這個以後,可以去處理像是 preExecute, postExecute 或者是型別的轉換與處理。要設置的話,得先建一個繼承自 com.ziclix.python.sql.DataHandler 的類別,再去覆寫所需要處理的 method,然後再建立物件,指派給 cursor.datahandler 。
zxJDBC 不必另外安裝,已經包含在 jython.jar 裡。
ORM 的部分,介紹的是 SqlAlchemy。SqlAlchemy 是使用 mapper 來對應 Table 與類別 (from sqlalchemy.orm import mapper ),從範例看起來,是相當簡單。
接著是 Hibernate,但用 Hibernate 會不直覺,而且也比較複雜,需要寫 xml 等等的,作者不建議使用。
- Jun 18 Tue 2013 15:47
The Definitive Guide to Jython (Chapter 12)
close
文章標籤
全站熱搜
留言列表
發表留言