2009-01-01から1ヶ月間の記事一覧

VAIO TypeP

ついに、TypePを買いました。もちろん、SonyStyleでカスタマイズをして、10万円でした。・HDDの4200回転はおそすぎてありえない。 グレードを上げました。 ・LANケースブル、モニターの表示はむしろ必須 ・CPUはSonyStyleで真ん中のスペックです。最小…

忙しさ制御不能

2週間ほど、全くブログが書けない状況でした。。。 この2週間の間にした事を書いてみますと、・とある案件の調査にて、ひたすらJavaでテストケースを書く 40ケースは書きましたね。 ・リファクタリングを行う、エンジニアとして誰もが最後には 行いますが。…

S2JDBC-Genでの履歴の出力

現在、私の環境では2つのスキーマを用意し、調査をしています。 マイグレーションを実行する時、現在は両方の変更を1箇所にて 管理するという考えでいました。 理由はS2JDBC-Genを実行する時、両方のDDLを出力しているので、 1箇所に履歴が出力されれば問題…

変更履歴の対応

DDLの変更理由を記述しないと、何を変更したのか、忘れてしまいます。 Gen-DDLでは既にこの対応ができますので、以下に記述します。 まず、 を作成し、comment、ddlinfofileを追加します。 次に、 にも同様の内容を追加します。 適当な場所に追加します。 in…

autoGenerateForeignKeyを使用しましょう

外部キーを設定する時、個別に私は設定していました。taediumさんのアドバイスより、autoGenerateForeignKeyを使用すると、全体で管理できる という事ですので、早速使用します。 元々設定していた内容はコメントにします。 @Entity public class SUser { //…

Sequenceを対応してみました

taediumさんより、多くのアドバイスをもらっております。とても感謝しています。 1つ1つ、対応していきます。 まずはEntityを作ります。 @Entity public class SPrivilege { /** userIdプロパティ */ @Id @Column(length = 5, nullable = false, unique = fa…

日付型のプロパティー

taediumさんの日記を読んでいましたら、日付のプロパティーが変更されるようです。私はTIMESTAMPは使用せずに、Date型のみ使用していますので、影響はないです。useTemporalType="true"を使用しますと、今までの記述が保持されます。これをまずは設定したい…

発想の逆転

今まではDDLありきで考えていました、DDLがありましたので。 また、私自身の考えにも変化が必要でした。 開発にて、DB設計書を作成すると、大体マクロがついています。 マクロを実行すると、DDLができ、このDDLを実行してしていきます。 その後、DDLができ、…

勝手に思いましたあったらいいな、こんな機能

改めて本家サイトをみていて、 主な機能には次のようなものがあります。 1.データベースからエンティティクラスのJavaコードを生成する機能 2.エンティティクラスからDDL(Data Definition Language)スクリプトとCSV形式のダンプデータを生成し、バージョン管…

S2JDBC-Genを使ってみて

強く感じた事は、各データベースの事をほとんど意識しないで作業ができるという事です。 開発では複数のデータベースを持っていると、型や表現方法がことなるので、 かなり神経を使いますが、S2JDBC-Genがこの部分を吸収してくれるので、 今使用しているOrac…

取得してみましょう

設定したデータを取得していきたいと思います。 その前に、サブのテーブルのテストクラスを見てみると、今回は結合をしていますので、新しいメソッドが追加されています。 SCompanyを例にとってみましょう。 public class SCompanyService extends AbstractS…

一気にテストコードを書いていきます

それでは、サブのテーブルにデータを入れます。 今回はわざと中身を確認する為に、Entityレベルのテストを数回実行ですが、実際のテストではListを挿入できるInsertBatchを使いましょう! public class SCompanyServiceTest extends S2TestCase { private SC…

sequenceのデフォルトは50です

ん? デフォルトでは以下の設定はS2JDBC-Genには入っておりません。 が、私は設定していました。理由は、テーブルが当たり前のように変更されるからです。 「override = "true"」 overwriteはデフォルトは「false」ですので、AntのXMLに何も記述をしなければ…

複数テーブル対応のその後

今回作成するスクリプト文は、以下の3テーブルであります。 メインテーブルがあり、サブテーブル2つとメインはサブテーブルのIDで関連しています。 ダブっている部分はありますが、書いていきます。 <メイン:ユーザマスターテーブル> create table S_USER…

S2BlazeDSとS2JDBCはServiceパッケージで衝突

以前、ひがさんにアドバイスを頂き、HTML + Mayaa + SAStrutsをこれから調べなければいけないのですが、横フックで別のお仕事のお話が。。。 今度はプレゼンテーションが「AIR」になります。 後ろはSpring!!!は今の私にはありえない選択肢で、Seasar2を使…

スクリプト文のダブルクォーテーションの扱い

taediumさんにアドバイスを頂きまして、朝に上手く行きませんでした問題の理由が分かりました。 「スクリプト文を作成する時、 ダブルクォーテーションを入れる→大文字・小文字の区別が発生」 「スクリプト文を作成する時、 ダブルクォーテーションを入れな…

Not CompleteWhere But SimpleWhere

koichikさんよりアドバイスを頂いたので、早速実験です。 前回のServiceClassの時とメソッド名を変えて、実行します。 public void testSimpleWhereResolve() throws Exception { SimpleWhere where = new SimpleWhere().ge("id", Long.parseLong("1")); Sim…

S2JDBC-GenでDDLを出力してみると 一部解決編

以下の件、Exceptionは解決しました。 理由はテーブルのなかのVersionです。CREATE TABLE "S_COMPANY" ( "COM_ID" Number(5,0) NOT NULL ENABLE, "COM_NAME" VARCHAR2(60) NOT NULL ENABLE, "VERSION" Number(8,0), "REGIST_DATE" DATE, "CHANGE_DATE" DATE,…

S2JDBC-GenでDDLを出力してみると

今までは単一テーブルでの調査をしていました。 今後は複数テーブル(Join)を見ていきます。では、早速テーブルを作成します。 まずは最初のテーブルです。<Script文(自分で作成)> CREATE TABLE "S_COMPANY" ( "COM_ID" NUMBER(5,0) NOT NULL ENABLE, "…

Serviceクラスを作成して、テストを実行する includesとexcludesNull 解決編

またまたtaediumさんよりアドバイスを頂き、includesメソッドを使用し、うまく動きました。本当に感謝しております。詳細は、以下の通りです。ServiceClass public int updateTragetData(OrderVoucher entity, CharSequence... exceptFields) { return this.…

SimpleWhereのANDとORについて

ANDとORについて、突っ込んで調べてみようと思います。ServiceClass public List findOrderVoucherSimpleWhere(Where... wheres) { return this.jdbcManager.from(OrderVoucher.class).where(wheres).getResultList(); }ServiceClass2 public List findOrder…

便利な便利なS2JDBCの機能

最近は電車の中では、印刷した本家サイトを読んでいます。 サイトを読んでいますと、かゆい所に手が届いている機能が結構あります。今回、テストを実行する前に、テストデータを予め14件設定しました。<LimitとOffset> ページング(次へ、前へ)を一覧画面…

S2JDBC-Genで作成されたEntityの型 解決編

taediumさんよりアドバイスを頂き、早速テーブルを変更しました。CREATE TABLE "ORDER_VOUCHER" ( "ID" NUMBER(9,0) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(10), "ACCOUNT_NAME" VARCHAR2(30), "VERSION" NUMBER(9,0) NOT NULL ENABLE, CONSTRAINT "ORDER_…

Serviceクラスを作成して、テストを実行する includesとexcludesNull

本家サイトをみていると、便利なメソッドがあります。includesというメソッドを使用すると、指定した属性のみ更新してくれます。 挿入も同じように処理ができます。excludesNullというメソッドはEntityにNullを設定していれば、Null以外の属性を更新してくれ…

S2AbstractServiceにない処理を作成して、テストを実行する

次にS2AbstractServiceでは用意されていなく、独自に作成したテストケースを書きます。 まずはInsertBatchです。要は一括処理等に使用する事が想定されます。ServiceClass public int insertAll(List entities) { return this.jdbcManager.insertBatch(entit…

S2JDBCの楽観ロックのあれこれ

楽観ロックについては、色々とみたので、別エントリーで書いてみます。まずはデータを挿入します。<Script文=今までのテストコードも同じテーブルです> CREATE TABLE "ORDER_VOUCHER" ( "ID" NUMBER(10,0) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(10), "…

S2JDBC-Genで作成したテストケースの実行

S2JDBC-GenでEntity・Service・Testパッケージ以下にクラスが自動生成されたので、テストケースをゴリゴリ書いてみようと思います。本家サイト、Googleでの検索結果などを見ますと、自動生成時にあるクラスはテスト用のクラスで、何も考えずに実行して、うま…

S2JDBC-Genで作成されたEntityの型

現在、データベースはOracle Express Editionを使用しています。 既にデータベースにテーブルをつくり、この時に設定した型とEntityの型は以下の通りです。メモです。Oracle EntityCHAR String VARCHAR String NUMBER Long (小数点なし) NUMBER BigDecimal (…

S2JDBCの複数スキーマー対応 解決編

アドバイスを頂き、成功しましたので、対応方法を記述します。jdbc.dicon s2jdbc.diconこの2つのファイルは既に記述しました内容のままになります。 「s2jdbc-print.dicon」 0 0 0 oracleDialect 「s2jdbc-screen.dicon」 0 0 0 oracleDialect 「printjdbcMa…

S2JDBCは複数スキーマ対応

今抱えている案件では、スキーマーが複数ありますので、大丈夫かなぁ、と思っていましたが、本家のサイトにしっかり追加する方法があります。メモメモ。。。2つのスキーマーを想定し、S2JDBC-Genで一気に出力!あら? 1つしかできないなぁ。。。 jdbc.dicon …