スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

jrubyでPostgreSQLにjdbc接続

以前、jrubyでPostgreSQLへjdbc接続しようとして、うまくいきませんでした。
てっきりバグのまま放置さてているのかと思っていたのですが、どうやらやり方に問題があったようです。
Class.forNameでドライバーを読むのが必要なかったようで、普通にimportすればよかったようです。
むしろ、Class.forNameを呼ぶとクラスがロードできなくてExceptionを投げてきます。
コードは以下の通りです。
日本語テーブル名と日本語カラム名がうまくつかえるかの、実験にもなっています。

# coding:UTF-8
require "java"
import org.postgresql.Driver
import java.sql.DriverManager
import java.lang.System

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

st = con.prepareStatement(
"create table ユーザ (番号 integer, 名前 text, primary key(番号))")
st.executeUpdate()

names = ["予定表", "?", "?", "ハンカク"]
st = con.prepareStatement(
"insert into ユーザ (番号, 名前) values (?, ?)")
i = 0
names.each {|name|
i = i + 1
st.setInt(1, i)
st.setString(2, name)
st.executeUpdate()
}

st = con.prepareStatement(
"select 番号, 名前 from ユーザ order by 番号")
rs = st.executeQuery()
while rs.next()
System.out.println(rs.getInt("番号").to_s + ":" + rs.getString("名前"))
end

st = con.prepareStatement("drop table ユーザ")
st.executeUpdate()

con.close()
スポンサーサイト

Tag : PostgreSQL

Jruby1.1.4のbug

早速、ダウンロードしたJrubyで遊んでみたら、PostgreSQLのJDBCドライバーが読み込まれませんでした。バグトラックで調べてみると、ありますね[JRUBY-2851] なんと、Jruby1.1.3からのbugでまだ直ってないようです。PostgreSQL向けのバッチが書けないなー

Jruby1.1.4リリース

つい先日にJruby1.1.4がリリースされました。
英語のお勉強用に翻訳してみました。うーん、自信ないとこが多いです。


- Javaとの結合層でものすごくリファクタリング
 2-20倍のスピードアップしたコンポーネント(コール、コンストラクター、配列)
 多くの「長く居座った」(long stanging?) Java/Ruby間のインタラクションバグ解消
 いまある機能は、もっと一貫性と信頼性を持たせて作成
 クロージャーはインターフェースからスタティックメソッド、コンストラクターにできる(なんのこっちゃ?)
 Javaの例外はRubyのraise/rescue構文で直接扱える
 膨大なメモリは効果的に改良(GCを削減)
- Ruby1.9サポート開始(--1.9 フラグで利用可能)
 Native complex/rational(?)
- 追加的な効果で、インタープリターでパフォーマンスの良い動作
- --manage下でメモリリーク改修
- Cライブラリを呼ぶためのFFIサブシステム
 Rubiniusのsyslogモジュールの動作と組み込み
 win32APIサポート開始
- スレッドプーリング改良(at least one production user now(?))
- 配列の並列アクセスの改良
- Jruby1.1.3から72の問題を解消
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。