準備工作:下載組件
- Jython 安裝包:
jython_installer-2.2.1.jar
- zxJDBC:
zxJDBC-2.1.tar.gz
- MySQL JDBC 驅動:
mm.mysql-2.0.4-bin.jar(舊版,現推薦 mysql-connector-java)
安裝步驟
- 安裝 Jython:
java -jar jython_installer-2.2.1.jar → 安裝至 C:\jython2.2.1
- 解壓 zxJDBC 到
c:\tmp,複製 MySQL JDBC jar 到同目錄。
- 設置 CLASSPATH:
set CLASSPATH=c:\tmp\mm.mysql-2.0.4-bin.jar;c:\tmp\zxJDBC.jar;%CLASSPATH%
啟動 MySQL 並建測試庫表
cd C:\mysql51\bin
mysqld --console
mysql -u root
CREATE DATABASE test;
USE test;
CREATE TABLE a1(c1 VARCHAR(30));
INSERT INTO a1 VALUES ('Hello World');
Jython 交互式訪問(原生 zxJDBC)
>>> from com.ziclix.python.sql import zxJDBC
>>> conn = zxJDBC.connect("jdbc:mysql://localhost/test", "root", "", "org.gjt.mm.mysql.Driver")
>>> cursor = conn.cursor()
>>> cursor.execute("SELECT * FROM a1")
>>> cursor.fetchone()
('Hello World',)
>>> cursor.description
[('c1', 12, 30, None, None, None, 1)]
使用 dbexts 封裝庫(簡化操作)
- 創建
c:\jython2.2.1\lib\dbexts.ini:
[default]
name=mysql_test
[jdbc]
name=mysql_test
url=jdbc:mysql://localhost/test
user=root
pwd=
driver=org.gjt.mm.mysql.Driver
- Jython 中使用:
>>> from dbexts import dbexts
>>> conn = dbexts("mysql_test", r"c:\jython2.2.1\lib\dbexts.ini")
>>> conn.table() -- 列出表
>>> conn.table('a1') -- 表結構
>>> conn.isql("SELECT * FROM a1") -- 查詢
>>> conn.isql("INSERT INTO a1 VALUES('insert by dbexts')") -- DML
注意事項與現代化建議
- 示例使用舊版
mm.mysql 驅動,生產環境請升級至 mysql-connector-java 8.x,驅動類改為 com.mysql.cj.jdbc.Driver,URL 加 ?useSSL=false&serverTimezone=UTC。
- Jython 2.2.1 較老,當前穩定版為 2.7.x,語法兼容 Python 2.7。
- JDBC 連接池、預編譯語句、事務控制等進階特性可通過 zxJDBC 直接使用 Java API 實現。