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>

2010-05-19

SQL Server 2008についてのメモ - インポート、エクスポートについて

| 15:31

今日は、SQL Server 2008についてのメモ。

SQL ServerSQLを実行する方法

まずは、DOSプロンプトで以下のコマンドを実行します。

sqlcmd -S \SQLEXPRESS -d DataBaseName

「\SQLEXPRESS」はインスタンス名で、「DataBaseName」はデータベース名です。

上記のコマンドではlocalhostになっているので、別のサーバに接続するときはホスト名とポートを指定します。

ちなみに、ユーザは統合認証を利用しているので必要ありません。(Windowsのユーザ情報を利用して認証を実施している)

接続に成功したら、SQL文を記述して、goします。

1> select * from project
2> go

てか、goってw

このコマンドってSQLを実行するツールというより、ストアドプロシージャーを実行するツールなんですかね。

まあ、SQL文が実行できればなんでもいいんです。

SQL Serverでのインポートエクスポート

bcpコマンドを利用するそうです。

データをエクスポートするには以下のコマンドを実行します。

bcp "select * from DataBaseName.SchemaName.TableName" queryout Data.dat -T -c -S localhost\SQLEXPRESS

上記コマンドを実行するとData.dat(ファイル名は任意)が作成され、select文の実行結果が書き込まれます。

データのインポート以下の通りです。

bcp DataBaseName.SchemaName.TableName in Data.dat -T -f TableName.xml -S localhost\SQLEXPRESS

エクスポート時に作成したファイルを利用してインポートを実施します。

ちなみに、このインポートではフォーマットファイルを使用いています。

フォーマットファイルを利用するとデータと列のマッピングを行えるので便利です。

フォーマットファイルを作成するコマンドを以下の通りです。

bcp DataBaseName.SchemaName.TableName format nul -T -c -x -f TableName.xml -S localhost\SQLEXPRESS

上記コマンドを実行するとTableName.xml(ファイル名は任意)が作成され、XML形式でテーブル定義が出力されます。

ちなみに、XML以外でも出力できるみたいですがSQL Server独自の形式でDDLではありません。

DDLを作るにはSQL Server Management Studioが必要みたいです。

開発時には単体用、結合用など複数のデーターベースが必要なので、DDLは必須です。

今回はSQL Server Management Studioより、S2JDBC-GENを使ってみました。

理由としては、使い慣れているということと、バージョン管理なども考えられているし、なにより簡単!

ということで、S2JDBC-GENを利用したSQL Serverマイグレーションについては次回にします。

IvanIvan2012/02/18 18:58I guess finding useful, reliable information on the itnerent isn't hopeless after all.

rpbzxpkrpbzxpk2012/02/19 19:42S3NbHa <a href="http://ivsiqwkzwwjs.com/">ivsiqwkzwwjs</a>

hazcekphazcekp2012/02/20 01:58U6PFjv , [url=http://psyklsxgvsph.com/]psyklsxgvsph[/url], [link=http://xrxztlryelad.com/]xrxztlryelad[/link], http://wornnbmmythm.com/