Python言語用開発フレームワークです。Excelブック様式の設計書を入力してソースコードを自動生成します。各ツールは疎結合で部分利用が可能。EclipseプラグインまたはAntTaskで提供。Frameworkに対するあなたの評価あなたの評価は?ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。R/Oマッピングツール実装の一つです。Eclipseプラグイン形式により配布されています。[理念・思想]blancoDbは下記のような理念および思想を特徴としています。ソースコードにマッピングします。このことにより、リレーショナルデータベースの機能および性能を最大限引き出すことが出来ます。ツールとしては低機能であることにより、高性能に動作させることができ、またJDBCの機能を最大限利用することができます。スクロールカーソルやNULL許容列対応など最低限の機能は当然サポートします。自由度の低さリレーショナルデータベース上の型をJavaの特定のオブジェクト型に強制的にマッピングを行います。型マップに関しては極力自由度を排除しています。このことによりJDBCドライバの実装に起因したJDBCレベルでの型マッピングによる不具合発生を最小限にとどめることが出来ます。加えて自由度が低いために極めて少ない設定によりマッピングを自動生成することができます。原則として列名や型情報はJDBCドライバから得られるメタ情報を活用して自動的に決定します。自由度の低さゆえに非常に安全に動作させることもできます。型マップ済みのJavaクラスが提供されることにより、実行時エラーの可能性を激減させます。自由度の高さは設定を増やして不確実性を押し上げ、各種トラブルを誘発するのです。利用される際にはカスタマイズが発生することでしょう。生成されるソースコードにいろいろ手が加わるのはもちろんのこと、blancoDbのソースコードそのものにもカスタマイズが入ることを想定しています。いったカスタマイズのしやすさを実現するための方法として、機能を増加させず自由度を増やさずblancoDbそのものの規模の肥大化を抑制している側面もあります。規模が小さいことはカスタマイズ実施後のテスト規模を抑制することも出来ます。そのまま利用できます。そのまま利用できます。当然のことですが、複数表を結合した検索が可能です。ある程度複雑なサブクエリやUNION付きSQL文なども、あたりまえのことですが、ごく当然のものとして利用できます。blancoDbは極めて自由度が高くなるよう設計されています。APIをラッピングしています。JDBCプログラミング・ソースコードが自動生成されます。このため既存のJDBCノウハウおよびスキルが転用でき、学習コストがとても低くなっています。SQL文とSQL文の付加情報を記載することにより入力メタ情報を設定します。Excelおよびその互換ソフトを用いるだけで入力メタ情報を設定できます。XMLファイルは利用しますが、単に中間ファイルとしてのみ利用しています。ありがちなJDBCプログラミングにおけるバグを予防するための仕組みをもっています。一意制約違反は特別な例外として扱うことにより、一意制約違反の処理忘れバグを予防できます。検索・実行結果が1件であるSQL文について、実行結果が1件でない場合には例外を発生させることよにり処理忘れバグを予防できます。ステートメントのクローズ忘れについて、これを検知して警告を出すことによりクローズ忘れバグを予防できます。SQLインジェクションを発生させにくい構造になっています。SQLインジェクションの予防および対策として非常に有効です。リレーショナルデータベースのカーソルが利用できます。UPDATEを伴った行ロックを伴った検索および行の更新が可能です。実行時に特別なクラスライブラリを必要としません。生成したソースコードだけで完結して動作します。解決可能なものは最大限解決を済ませます。このことにより実行時コストを極小化することが実現できます。基幹系システム開発に対応しています。基幹系システム開発における一般的な開発プロセスに沿った形で設計および実装されています。2005.05.10版]下記の仕様をR/Oマッピングと呼ぶことと定義します。R/Oマッピングツールとは下記の仕様を満たすものを指します。リレーショナルデータベース指向である。リレーショナルデータベース上の型を、強制的に特定のオブジェクト型にマッピングする。リレーショナルデータベースのカーソルが利用できる。リレーショナルデータベースが持つ機能・性能を阻害しない。各種ロックが適切に利用できる。NULL許容列を適切に扱うことができる。NULLはNULLとして入出力ができる。トランザクションが適切に扱える。トランザクションのコミットとロールバックを任意のタイミングで呼び出すことができる。トランザクション分離レベルを適切に扱うことができる。メモリ消費量が常識的であること。処理件数が増えてもメモリ消費量が線形には増えないこと。StreamやReaderを適切に利用し、大きなデータや大量データを扱ってもメモリ上には展開しない。ストアドプロシージャ呼び出しに適切に対応する。初期バージョン(blancoDb)の開発。Editionにフォークした後の開発および維持メンテ担当。試験およびリリース判定。Editionは下記のライブラリを利用しています。※各オープンソース・プロダクトの提供者に感謝します。JavaからExcelブック形式を読み書きするためのライブラリです。共通ライブラリを担います。動作しない不具合に対応。floatなど)の値が適切に取得できない問題を修正。残存しることが判明したので、横展開してこれを修正。(1.6.4)BINARYおよびラージTEXTに対する単一表アクセス自動生成について、「一行制約」をOFFにするように仕様を変更。getSingleRow内のnextメソッドの2度呼び出しによって閉じてしまう問題に対応するための変更。(plugin)blancoEclipsePluginGen最新版に対応。jarファイル類の更新。デフォルト値として設定しました。+安全のために、blanco作業用フォルダ(blanco)が未設定の場合に、適切なメッセージを伴って異常終了するように変更しました。(1.6.2)blancoValueObjectを更新しました。(toStringが自動生成される版となります)その他、jarファイル類を更新。blancoCodeGeneratorを第2世代へと置き換えました。バグ修正版InputStreamやReaderにマップされる、ひとつの列で扱わないとJDBCの仕様上問題がある型について、Simpleの単一表自動生成で生成されないように修正しました。