WebObjects:MySQLのためのEOModelの設定
WebObjectsの運用環境で稼動するWebアプリケーションからデータベースにアクセスするためには,データベースの情報を定義するEOModelファイルが必要です。このEOModelファイルはEnterprise Objects Framework(EOF)からJDBCアダプタを介してデータベースにアクセスするためのもので,データベースへのアクセスに必要なJDBCの定義を設定しておく必要があります。
当方では,データベースはもっぱらMySQLを使っていますが,その場合にEOModelファイルに設定しているJDBCの定義をサンプルとして以下に公開します。
MySQLのバージョンは5.0.xで,JDBCアダプタはMySQL Connector/J 5.0.xを使用しています。JDBCアダプタは,Mac OS Xの環境では「/Library/Java/Extensions/」にインストールしています。(参考)
JDBC Connectionの設定:
名称 | 設定値 |
JDBC URL: | jdbc:mysql://ホスト名/データベース名?capitalizeTypeNames=true&useUnicode=true& characterEncoding=UTF8&tinyInt1isBit=false&autoReconnect=true&maxReconnects=3 |
UserName: | MySQL上に作成した,Webアプリからアクセスするデータベースのユーザ名。 |
Password: | 同パスワード。 |
Driver: | 当方では空白で接続できていますが,「com.mysql.jdbc.Driver」を指定する例もあるようです。 |
Plugin: | 空白でOKです。 |
■JDBC URLで設定した各パラメータについての解説
ホスト名
MySQLが稼動しているホスト名またはIPアドレスを指定します。
WebObjects運用環境とMySQLが同じホストで稼動しているなら,ホスト名は「localhost」または「127.0.0.1」になります。
データベース名
MySQL上に作成した,Webアプリからアクセスするデータベース名を指定します。
capitalizeTypeNames=true
タイプ名を大文字にします。
ドキュメントによると,WebObjectsから呼ぶときはこれを有効にしておくことになっているらしいです。
useUnicode=true
Unicode系の文字エンコーディングを使用することを宣言します。
MySQL 5.0.xではデフォルトがtrueです。
characterEncoding=UTF8
文字エンコーディングをUTF-8に指定します。
MySQLが5.0になって,データベースごと,テキストフィールドごとに文字コードを指定できるようになりましたが,その指定を行った場合はここにはUTF-8を指定することになっているようです。→こちらの最後を参照。
ここで指定した文字コードがデータベースに書き込まれるのは,データベースの文字コードに「binary」とか指定したときに有効なのではないかと思われます。
useUnicodeとcharacterEncodingについての詳細はこちらを参照。
tinyInt1isBit=false
TINYINT(1)を8bit値として扱います。詳細はこちらを参照。
MySQLの旧バージョンにアクセスするプログラムとソースコードを共通化するために,MySQL5.0.xでもTINYINT(1)は8bit値として扱うようにしています。
autoReconnect=true
データベースへクエリを送信する前にデータベースとの接続を確認し,接続が切れていれば再接続を試みます。
ただし,再接続を“安全に”行うことはできず,autoReconnectの機能は将来バージョンで廃止になるようです。
接続が切れる例としては,mysqldはデフォルトでアイドル状態が8時間続いた接続を閉じてしまいます。
この接続が切れるまでのアイドル時間は,「my.cnf」ファイルの[mysqld]セクションで定義する「wait_timeout」(または「interactive_timeout」)パラメータにより指定されます。
maxReconnects=3
autoReconnect=trueのときに再接続を試みる最大の回数です。
注:このパラメータは,MySQL Connector/Jの5.0のドキュメントには記載がありますが,5.1のドキュメントからはなくなっています。
■関連情報
WebObjects:JDBC URL を指定してデータベースサーバの文字エンコードを選択する方法
MySQL 5.1:MySQL Connector/J よくある問題と解決法
MySQL Connector/Jに対してJDBC URLで指定できるパラメータ:[5.0][5.1]
Enterprise Objects Frameworkの解説(Wikipedia)
WebObjects:Javaライブラリの利用方法
WebObjects:[API Reference(javadoc)][ADC Tools][サポート]
■関連書籍をAmazonで検索:[MySQL][WebObjects 和書
洋書
][JDBC
]
●実践 JDBC―Javaデータベースプログラミング術
←この記事が役に立ったという方はクリックお願いします。
![]() | ![]() |
| 固定リンク
「プログラミング」カテゴリの記事
- シェルスクリプト:「.svn」ディレクトリを一括削除する(2015.03.23)
- JavaScript:excanvasを使ってWebページに画像を表示する(2012.05.07)
- C言語:TRUEとFALSEの値(2012.05.06)
- Java:CSVパーサを作る(その3) - RFC4180対応 後編(2008.06.13)
- Java:CSVパーサを作る(その2) - RFC4180対応 前編(2008.06.12)
「WebObjects」カテゴリの記事
- WebObjects:CSVレスポンスの実装(2008.03.16)
- WebObjects:メモリ不足エラー対応(2008.02.11)
- WebObjects:MySQLのためのEOModelの設定(2008.02.01)
- WebObjects:日本語の基本(2008.01.26)
- WebObjects:WOMailDeliveryで日本語メール送信(2008.01.23)
「MySQL」カテゴリの記事
- Java:MySQLに金額を格納する(2008.03.07)
- MySQL:4.1日本語問題(2008.02.11)
- WebObjects:MySQLのためのEOModelの設定(2008.02.01)
- MySQL:TINYINT(1)の値(2008.01.25)
「JDBC」カテゴリの記事
- MySQL:4.1日本語問題(2008.02.11)
- WebObjects:MySQLのためのEOModelの設定(2008.02.01)
- MySQL:TINYINT(1)の値(2008.01.25)