package lecture.jdbc;
/**
* Entityクラス生成・Entityオブジェクト生成の問題点 JDBC Java
*
* ・課題:
* ・数あるテーブルのEntityクラスを延々とsetter/getterを書いていくなど大変なので自動化したい
* ・insertのパラメータを設定する処理やResultSetからEntityを生成する処理を延々と書いていくのは大変なので自動化したい
*
* ・これらの課題は、原理的には次のように解決できる
* ・DBからメタデータすなわち次のようなデータを取得することができる
* ・DBにどのようなテーブルがあるか
* ・テーブルにどのようなカラムがあるか
* ・名称、タイプ、長さ、コメント..
* ・テーブルのキー
* ・上記を取得すれば、EntityのJavaソースを生成することができる
* ・注、ORACLEでは、テーブルのコメント、カラムのコメントは取得できず、独自SQLを実行する必要がある
* ・ResultSetからメタデータすなわち次のようなデータを取得することができる
* ・selectされた値のカラム名、別名、そのデータが属するテーブル名
* ・注、カラムのコメントは取得できない⇒テーブルのメタデータと燐寸んする必要がある
* ・注、ORACLEとPostgreSQLは、別名と元のテーブル名が取得できない ⇒ 非常に困った問題
* ・上記を利用すれば、insertのパラメータ設定やResultSet空のEntity生成を自動化することができる
* ・すると個別のDAOは不要となり汎用DAOだけで用がたりることになる
* ・固有の処理を実装したい場合には、汎用DAOをextendsする
*
* ・これらは「原理的には可能である」という話である
* ・実現するにはいくつかの問題があるが、大きなものはカラム名とフィールド名の対応の問題がある
*
* ・カラムの名称とフィールド名称の対応
* ・カラム名称=フィールド名称ならばよいが多くの場合はそうではない
* ・カラム名をあるルールに従いまたは個別に指定してフィールド名にする方法?
* ・パラメータ設定やEntityオブジェクト生成時に、どのカラムとフィールドが対応しているのか判定する方法?
*
* ・Entityクラス生成プログラムで次のように対応する
* ・カラム名⇒フィールド名の変換
* ・典型的ないくつかのルールを実装する
* ・個別にフィールド名を指定できるようにしておく
* ・Entityクラスにカラム名とフィールド名の対応を生成しておく
* ・注、実用的には、フィールドにしないカラム、カラムにないフィールド定義、フィールドタイプを指定できるなどの機能が必要
*/
class EntityProblem {
}
//---------------------------------------------------
//・目次 - JDBC
//http://blogs.yahoo.co.jp/artery2020/40575568.html
//・目次 - Java入門
//http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//http://blogs.yahoo.co.jp/artery2020/39657784.html
//・目次 - 単なる雑談
//http://blogs.yahoo.co.jp/artery2020/40599073.html
//---------------------------------------------------
/**
* Entityクラス生成・Entityオブジェクト生成の問題点 JDBC Java
*
* ・課題:
* ・数あるテーブルのEntityクラスを延々とsetter/getterを書いていくなど大変なので自動化したい
* ・insertのパラメータを設定する処理やResultSetからEntityを生成する処理を延々と書いていくのは大変なので自動化したい
*
* ・これらの課題は、原理的には次のように解決できる
* ・DBからメタデータすなわち次のようなデータを取得することができる
* ・DBにどのようなテーブルがあるか
* ・テーブルにどのようなカラムがあるか
* ・名称、タイプ、長さ、コメント..
* ・テーブルのキー
* ・上記を取得すれば、EntityのJavaソースを生成することができる
* ・注、ORACLEでは、テーブルのコメント、カラムのコメントは取得できず、独自SQLを実行する必要がある
* ・ResultSetからメタデータすなわち次のようなデータを取得することができる
* ・selectされた値のカラム名、別名、そのデータが属するテーブル名
* ・注、カラムのコメントは取得できない⇒テーブルのメタデータと燐寸んする必要がある
* ・注、ORACLEとPostgreSQLは、別名と元のテーブル名が取得できない ⇒ 非常に困った問題
* ・上記を利用すれば、insertのパラメータ設定やResultSet空のEntity生成を自動化することができる
* ・すると個別のDAOは不要となり汎用DAOだけで用がたりることになる
* ・固有の処理を実装したい場合には、汎用DAOをextendsする
*
* ・これらは「原理的には可能である」という話である
* ・実現するにはいくつかの問題があるが、大きなものはカラム名とフィールド名の対応の問題がある
*
* ・カラムの名称とフィールド名称の対応
* ・カラム名称=フィールド名称ならばよいが多くの場合はそうではない
* ・カラム名をあるルールに従いまたは個別に指定してフィールド名にする方法?
* ・パラメータ設定やEntityオブジェクト生成時に、どのカラムとフィールドが対応しているのか判定する方法?
*
* ・Entityクラス生成プログラムで次のように対応する
* ・カラム名⇒フィールド名の変換
* ・典型的ないくつかのルールを実装する
* ・個別にフィールド名を指定できるようにしておく
* ・Entityクラスにカラム名とフィールド名の対応を生成しておく
* ・注、実用的には、フィールドにしないカラム、カラムにないフィールド定義、フィールドタイプを指定できるなどの機能が必要
*/
class EntityProblem {
}
//---------------------------------------------------
//・目次 - JDBC
//http://blogs.yahoo.co.jp/artery2020/40575568.html
//・目次 - Java入門
//http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//http://blogs.yahoo.co.jp/artery2020/39657784.html
//・目次 - 単なる雑談
//http://blogs.yahoo.co.jp/artery2020/40599073.html
//---------------------------------------------------