パッケージのCRUDは単にメソッドは、パラメータとしてオブジェクトに転送することができる必要

挿入

 / **
*クラス名対応テーブル、対応する属性フィールドは、
* @paramが経過オブジェクトOBJ
* @return
* /
パブリック静的ブールINSERT(オブジェクトobj){
偽のフラグにブール=;
<?> = Obj.getClassクラスC() ; //クラスOBJを取得

//のStringBufferは、設定SQL文使用挿入
//を反映して、クラス名マッピングテーブルの名前を取得し
;() "(" c.getSimpleName +()+ "INSERT INTO"のStringBuffer SB1 =新しい新規のStringBufferの
「値(StringBufferのSB2 =新しい新規のStringBuffer (「);

フィールド[]フィールド= c.getDeclaredFields() ; // 反射性アレイによってオブジェクトを取得
するために(INT i = 0; iは field.length <; iは++){// 属性は、SQL文を横断するように構成されました

IF(!= I-field.length 1){
sb1.append(項目[I] .getName())追記( "");
sb2.append( "?");
}他{
sb1.append( 。フィールド[I] .getName())追記( ")");
sb2.append( ");?");
}
}
文字列のSQL = sb1.append(SB2).toString();
//データベース接続を取得し、データベース操作
接続connはのgetConnection()=;
PreparedStatementのPS = NULL;
試み{
; PS = conn.prepareStatement(SQL)を
(I = 0 int型; Iはfield.lengthを<; I ++の)のために{
分野[I] .setAccessible(trueに); //アクセシビリティ属性、プライベートプロパティにアクセス設定
(取得フィールドによってオブジェクトのオブジェクトプロパティ値を取得するオブジェクト)メソッドのtry {//
[ps.setObject(I + 1、フィールド (OBJに.get i])と); // SQL文がでプリコンパイルされましたか?割り当て
}キャッチ(例外:IllegalArgumentException E){
e.printStackTrace();
キャッチ}(IllegalAccessExceptionがE){
e.printStackTrace();
}
}
のSystem.out.println(PS); SQLステートメントの//戻り実行
フラグ= ps.execute(); //は、SQLを実行
}キャッチ(のSQLException E){
e.printStackTrace();
} {最後に
閉じる(PS);
閉じる(コネティカット);
}
フラグにリターン;
}
。1
2
3
4
5
6
7
8
9
10
11
12は、
13である
14
15
16
17
18である
19。
20
21である
22である
23である
24
25
26れます
27
28
29
30
31である
32
33さ
れている34
35
36
[37
38である
39
40
41である
42ことである
43で
ある44
45
46である
47
48
49
50
51れている
 2が削除
 

 / **
*メインキー(デフォルトは最初の属性)のオブジェクトの削除
*の@param OBJ
* @return
* /
パブリック静的が削除ブール(オブジェクトobj){
;ブール=フラグをfalseに
、クラスC = obj.getClass()<?>を、 OBJのクラスを取得する//
//構築SQL文の削除
のStringBuffer SB =新新のStringBuffer( "削除から");
。sb.append(c.getSimpleName())追記( "WHEREを");
//オブジェクトのプロパティの配列を取得
フィールドを[] = c.getDeclaredFieldsフィールド();
//設定された第1の特性のアクセシビリティ
フィールド(真の)[0] .setAccessible;
//属性の最初の名前は、SQL削除するように構成されます
sb.appendを(フィールド[ 0] .getName())追記( "=");
文字列のSQL = sb.toString();
接続connはのgetConnectionを(=);
PreparedStatementのPS = NULL;
試み{
PS = conn.prepareStatement(SQL)。
ps.setObject(1、フィールド[0]に.get(OBJ))。
System.out.println(PS)。
フラグ= ps.execute()。
}キャッチ(のSQLException E){
e.printStackTrace();
}キャッチ(例外:IllegalArgumentException電子){
e.printStackTrace();
}キャッチ(IllegalAccessExceptionが電子){
e.printStackTrace();
}最後に{
近い(PS)。
(CONN)近いです。
}
フラグを返します。
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26である
27
28
29
30
31である
32
33は
34である
35
36
37
 3、変更します
 

/ **
*アナログJDBC更新操作、最初のデフォルトの主キー属性
* @param OBJ
* @return
* /
パブリック静的ブール更新(オブジェクトobj){
falseにフラグにブール=;
<?>クラスC = obj.getClass( );
StringBufferのStringBufferの新しい新しいSB =( "更新" c.getSimpleName +()+ "SET");

フィールド[]フィールド= c.getDeclaredFields()。
以下のために(; iはfield.length <I = 1 int型私は++){
(!I = field.length-1)であれば{
。sb.append(フィールドを[I] .getName())付加( "=?") ;
}他{
sb.append(項目[I] .getName())付加( "=どこ?")。
}
}
sb.append(フィールド[0] .getName()+ "=?")。
文字列のSQL = sb.toString()。

接続CONN =のgetConnection();
PreparedStatementのpsの= NULL;
{試みる
PS = conn.prepareStatement(SQL)。
{ため(; iはfield.length <I ++はI = 1 INT)
フィールドを[I] .setAccessible(TRUE)。
ps.setObject(I、フィールド[I]に.get(OBJ))。
}
フィールド[0] .setAccessible(TRUE)。
ps.setObject(field.length、フィールド[0]に.get(OBJ))。
System.out.println(PS)。
フラグ= ps.execute()。
}キャッチ(のSQLException E){
e.printStackTrace();
}キャッチ(例外:IllegalArgumentException電子){
e.printStackTrace();
}キャッチ(IllegalAccessExceptionが電子){
e.printStackTrace();
}最後に{
近い(PS)。
(CONN)近いです。
}
フラグを返します。
}
。1
2
3
4
5
6
7
8
9
10
11
12である
13である
14
15
16
17
18である
。19
20
21であり、
22は
23である
24
25
26である
27
28
29
30
31であり、
32
33は
34である
35
36
37
38である
39
40
41である
42である
43である
44である
45
 、4クエリクエリ操作だけで、クラスのクラス缶、オブジェクトを渡す必要はありません
 

/ **
*シミュレーションフレームワークは、対応テーブルクラスオブジェクトによって取得された全てのレコード
* @param OBJ
* @return
* /
パブリック静的<T>リスト<T>のSelectAll(クラス<T> C){
列= SQLは、「SELECT *から「+ c.getSimpleName(); // クラス名対応テーブルのSQL文が反射することによって構築され得る
リスト<T>リスト=新しいのArrayList <T>(); // ストアクエリが結果
フィールド[]フィールド= c.getDeclaredFieldsを(); //反射によってすべてのプロパティを取得し
、接続connはのgetConnection()=
PreparedStatementのPS = NULL;
のResultSet RS = NULL;
試み{
PS = conn.prepareStatement(SQL)
のSystem.out.println(PS)を、
RS = PS .executeQuery()は、結果セットを返す//
一方(rs.next()){
T OBJ = c.newInstance(); //反射型インスタンスTによって構成される
(INTのためにI = 0; I <field.length ;私は// {++します)

[i]は.setAccessible(真)フィールド ; // アクセシビリティ属性設定(私有財産へのアクセス)
フィールド[I] .SET(OBJ、rs.getObject(フィールド[I] .getName())); //オブジェクトインスタンスであることを属性値によって結果セットの名前を取得
}
List.add(OBJ); //リストにインスタンスオブジェクトセットを追加する
}
}キャッチ(のSQLException E){
e.printStackTrace();
}キャッチ(ないInstantiationExceptionがEです) {
e.printStackTrace();
}キャッチ(IllegalAccessExceptionがE){
e.printStackTrace(http://www.my516.com);
} {最後に
閉じる(RS);
閉じる(PS);
閉じる(コネティカット);
}
戻り値のリスト;
}
---------------------

おすすめ

転載: www.cnblogs.com/hyhy904/p/11335131.html