« WebObjects:日本語の基本 | トップページ | MySQL:4.1日本語問題 »

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はレイアウトの関係で途中改行を入れていますが,実際は1行です。

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データベースプログラミング術

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ プログラム・プログラマへ 人気ブログランキングへ ←この記事が役に立ったという方はクリックお願いします。


ノートンモバイルセキュリティバナーブックオフオンライン【PC・携帯共通】

|

« WebObjects:日本語の基本 | トップページ | MySQL:4.1日本語問題 »

プログラミング」カテゴリの記事

WebObjects」カテゴリの記事

MySQL」カテゴリの記事

JDBC」カテゴリの記事

トラックバック


この記事へのトラックバック一覧です: WebObjects:MySQLのためのEOModelの設定:

« WebObjects:日本語の基本 | トップページ | MySQL:4.1日本語問題 »