close
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 等等的,作者不建議使用。
這裡大量使用了 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 等等的,作者不建議使用。
文章標籤
全站熱搜
留言列表