S2Buriを触ってみる
移転しました。
AndroMDAはちょっとわけあってしばらく保留。
その前に
http://www.techscore.com/tech/Seasar/Buri/2.html#buri-2.1
を参考にS2Buriを触ってみることにした。
目標は、DBFluteと連携させて簡単なサンプルを作成する。
目処は10月末にしてみよう。
http://d.hatena.ne.jp/j5ik2o/20071003
この記事を見て、ちょっと刺激をうけてしまいました。。
Buri2章 Buri 入門
記事を見ていてつまった点を覚書いておく。
DB設定
特に上記記事に書いてなかったので記載。
自分はpostgresを使用しているので、以下のように設定。
(1)jdbc.dicon 修正
<!-- コメントアウト <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "org.apache.derby.jdbc.EmbeddedDriver" </property> <property name="URL"> "jdbc:derby:db/buri;create=true" </property> </component> --> : : <!-- 有効化 --> <!-- for PostgreSQL --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "org.postgresql.Driver" </property> <property name="URL"> "jdbc:postgresql://localhost/buri" </property> <property name="user">"postgres"</property> <property name="password">"postgres"</property> </component>
(2) DBにデータベース作成
pgAdminやコマンドラインより、buri というDBを作成しておく
(3) テーブルとテストデータ作成
\\BURI_ROOT\db\createdb_postgre.sql ← テーブル作成sql
\\BURI_ROOT\db\example_postgre.sql ← テストテーブルsql
これでBrui2章の動作をJUnitで確認できる。
Buri3章 基本的な開発の概要
テストデータ作成
2章で作成したDBに以下SQLを実行
※説明ではDerby用しかなかったので、一応postgreSQLバージョンを記載しておく。
CREATE TABLE Document ( -- 文書 ID (値は 1 から始まる連番を自動生成). id BIGINT NOT NULL, -- 文書のタイトル. title VARCHAR(64) NOT NULL, -- 文書の内容. content VARCHAR(1024) NOT NULL ); CREATE SEQUENCE documentID START WITH 1 INCREMENT BY 1 ;
また、mavenで使用するpom.xmlはderbyではなくpostgresを使用する。
このため、以下のように記載しておく。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.docmanage</groupId> <artifactId>docmanage</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>docmanage</name> <repositories> <repository> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <url>http://maven.seasar.org/maven2</url> </repository> </repositories> <build> ... </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>8.2-504.jdbc3</version> </dependency> <dependency> <groupId>geronimo-spec</groupId> <artifactId>geronimo-spec-j2ee</artifactId> <version>1.4-rc4</version> <scope>runtime</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>org.seasar.buri</groupId> <artifactId>s2-buri</artifactId> <version>0.3.1</version> </dependency> </dependencies> </project>
また、Eclipseで開発できるように以下コマンドをサンプルのルートディレクトリで実行しておく
mvn eclipse:eclipse
クラス作成
toStringメソッドを加えないと、標準出力で結果を確認できないため加えておく。
public class DocumentDto { : : public String toString(){ StringBuffer sb = new StringBuffer(); sb.append(id); sb.append(","); sb.append(title); sb.append(","); sb.append(content); return sb.toString(); } }
Log4jの設定
以下のようなLog4jを用意し、resoucesフォルダの下に配置
log4j.category.org.seasar=INFO, C log4j.additivity.org.seasar=false log4j.category.examples=INFO, C log4j.additivity.examples=false log4j.appender.C=org.apache.log4j.ConsoleAppender log4j.appender.C.Target=System.out log4j.appender.C.ImmediateFlush=true log4j.appender.C.layout=org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
DEBUGからINFOに変えてあるので、余分なログを出力しなくなる。
以上を踏まえて記事にしたがって実装したところ、記事どおり動作確認できた。
さて、S2Buriを使ったアプリの簡単な実装方法がわかったので、簡単な課題を元にDBFluteも使ってアプリを作成してみたい。