Hatena::Groupmediaforcelabs

御手洗の開発記録

 | 

2010-06-03

SQL ServerでS2JDBC-GENを利用する方法

| 14:47

前々回、S2JDBC-GENでのマイグレーションについて書くと言っていましたが、特に難しいことはないので、注意点だけまとめることにします。

SQL ServerJDBCドライバのセットアップ方法

Javaで利用するので、JDBCドライバが必要です。

SQL ServerJDBCドライバMicrosoft公式のものとjTDSというプロジェクトが開発したものがあります。

DoltengS2JDBCのプロジェクトを作成すると、jTDSのJDBCドライバを利用するためのテンプレートが用意されています。

今日は、そんなに書くこともないので両方の記述方法を説明しておきます。

Microsoft公式のJDBCドライバを利用する方法

まず、以下のサイトからライセンス条項をダウンロードします。

http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=99b21b65-e98f-4a61-b811-19912601fdc9

Windowsで利用するので、ライセンス条項の「上記事項に同意し、Microsoft Windows バージョンをダウンロードします」をクリックしてドライバダウンロードします。

ダウンロードしたexeは自己解凍方式の実行ファイルなので、実行して解凍してできたモジュールを適切なディレクトリにコピーします。

ちなみに、僕は「C:\Program Files」配下にコピーしました。

次にjdbc.diconの設定方法です。

<component name="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
        "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    </property>
    <property name="URL">
        "jdbc:sqlserver://localhost;integratedSecurity=true;instanceName=SQLEXPRESS;DatabaseName=DBNAME"
    </property>
</component>

今回は、統合認証を行っているので、ユーザ名とパスワードの設定は必要ありません。

そのかわり、「integratedSecurity=true」の設定が必須なのと、統合認証用DLLをPATHが通っているディレクトリにコピーしてください。(もしくは、DLLが格納されているディレクトリにパスを通す)

コピーしたDLLは以下の通りです。

Microsoft SQL Server JDBC Driver 2.0\sqljdbc_2.0\jpn\auth\x86\sqljdbc_auth.dll*1 *2

最後に、ドライバjarファイルのパスをクラスパスに設定します。

使用したjarファイルは以下の通りです。

Microsoft SQL Server JDBC Driver 2.0\sqljdbc_2.0\jpn\sqljdbc4.jar*3

以上でMicrosoft公式JDBCドライバの設定は終了です。


jTDSのJDBCドライバを利用する方法

jTDSのサイトからJDBCドライバダウンロードします。

公式サイト:http://jtds.sourceforge.net/

ダウンロードhttp://sourceforge.net/projects/jtds/files/

ダウンロードしてきたzipファイルを解凍して適切なディレクトリにコピーします。

次にjdbc.diconの設定方法です。

<component name="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
        "net.sourceforge.jtds.jdbc.Driver"
    </property>
    <property name="URL">
        "jdbc:jtds:sqlserver://localhost/DBNAEM;instance=SQLEXPRESS"
    </property>
</component>

上記の設定と同様に統合認証を行っているので、ユーザ名とパスワードの設定は必要ありません。

公式と違うのはDLLをコピーするだけで統合認証が利用できます。

コピーしたDLLは以下の通りです。

「jtds-1.2.5-dist\x86\SSO\ntlmauth.dll*4 *5

最後に、ドライバjarファイルのパスをクラスパスに設定します。

使用したjarファイルは以下の通りです。

「jtds-1.2.5-dist\jtds-1.2.5.jar*6

以上でMjTDSのJDBCドライバの設定は終了です。


SQL Serverのデータ型について

最後に、データ型を指定する方法を記載ます。

S2JDBCDDLを作成すると意図したデータ型にならない場合があります。

例えば、Date型で設定していたのにDateTime型になってしまったり、nvarcharがvarcharになってしまったりします。

そいうときは、ColumnアノテーションのcolumnDefinition属性で指定することができます。

@Column(nullable = true, unique = false, columnDefinition = "nvarchar(MAX)")
public String cn;

本日は以上で終了です。

あー。ラーメン食べたい。

*1解凍してできたディレクトリ名が「Microsoft SQL Server JDBC Driver 2.0」の場合の例となります。

*2: 64bit OS の場合はx64ディレクトリ配下のDLLを使用してください。

*3解凍してできたディレクトリ名が「Microsoft SQL Server JDBC Driver 2.0」の場合の例となります。

*4解凍してできたディレクトリ名が「jtds-1.2.5-dist」の場合の例となります。

*5: 64bit OS の場合はx64ディレクトリ配下のDLLを使用してください。

*6解凍してできたディレクトリ名が「jtds-1.2.5-dist」の場合の例となります。

BrunaBruna2012/02/18 14:22That's the smart thiknnig we could all benefit from.

njbcdwnjbcdw2012/02/19 19:49jTslcQ <a href="http://ddmargqbnzdf.com/">ddmargqbnzdf</a>

ygmktgutufvygmktgutufv2012/02/20 00:12gype8F , [url=http://pttmxelfkeee.com/]pttmxelfkeee[/url], [link=http://drudigdfwkzg.com/]drudigdfwkzg[/link], http://hieclwqosavc.com/

yepcnpmxfgmyepcnpmxfgm2012/02/26 02:21YXHrOO <a href="http://ayrasgbojlmz.com/">ayrasgbojlmz</a>

 |