[PR]テレビ番組表
今夜の番組チェック


JythonとJDBC

 Javaからデータベースに接続するためのAPIである JDBCを使った例です。 以下に載せるのは、JDBCを使ってPostgreSQLに接続し、 簡単な問い合わせ(SELECT文)を実行することができるクラスのサンプルです。

import java
from java.sql import *
from java.io  import *

java.lang.Class.forName("org.postgresql.Driver")

user = "urano"
password = "urano398"

con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/udb",
           user, password)
print "Connected."

stmt = con.createStatement()
rset = stmt.executeQuery("select kanji_name, mail_address from users")
while rset.next():
    # 注意! JDBCでは列のインデックスは1から始まります。
    kanji_name = rset.getString(1)
    mail_address = rset.getString(2)
    print "[" + kanji_name + "] email=[" + mail_address + "]"

print "ok."
rset.close()
stmt.close()
con.close()
# end.

 JythonでJDBCを使うには、本家JavaでJDBCを使う方法を知っていることが大前提になります。 というか、JavaでJDBCを扱う方法を知っていれば、 そっくりそのままをPython言語で書き下すだけでJython上で動くのだということに、 すぐに気づかれると思います。

 なお、PostgreSQLの代わりにMySQLとhsqldbを使用する際の、 ドライバ名とURLについてサンプルを載せておきます。

java.lang.Class.forName("com.mysql.jdbc.Driver")
conn = DriverManager.getConnection(
  "jdbc:mysql://localhost:3306/udb?useUnicode=true&characterEncoding=SJIS",
  "urano", "urano398")

java.lang.Class.forName("org.hsqldb.jdbcDriver")
conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "sa", "")

コンパイル不要でJDBCによるデータベース・アクセスを簡単に実装できる Jythonは、「普通の」RDBMSのクライアントとしても勿論便利なのですが、 中でもとりわけhsqldbやCloudscapeなど、 Javaで書かれたRDBMSへのクライアントを開発する際に大変役立ちます。 ただでさえこれらのRDBMSに対するユーザー・インターフェースは不足しています。 そこでJythonを使って用途に合わせたクライアントを素早く開発すれば、 とても便利に使うことができるでしょう。

セクションのサブメニューに戻る
(first uploaded 2002/03/10 last updated 2004/05/05)