選択動的SQLスプライシング、文言を挿入

1  インポートするjava.util.Iterator。
2  インポートjava.util.Map。
3  インポートjava.util.Set。
4  
5  パブリック クラスSQLUTIL {
 6      パブリック 静的文字列sqlSelect = "" ;
7  
8      パブリック 静的文字列selectQuerySQL(MAP <文字列、OBJECT> マップ、文字列tableNameの){
 9          であれば(map.isEmpty()|| map.size()== 0 ){
 10              sqlSelectは= + "SELECT * FROM" tableNameの。
11          } {
 12             sqlSelectは= + tableNameの+ "どこ" "SELECT * FROM" ;
13              =設定された設定map.keySet()。
14              イテレータイテレータ= set.iterator()。
15              int型のインデックス= 0 16              一方(iterator.hasNext()){
 17                  文字キー= (文字列)iterator.next();
18                  Object値= map.get(キー)。
19                  であれば(値のinstanceof 文字列){
 20                      値= " '" +値+ "'" 21                  }
 22                 インデックス++ ;
23                  であれば((インデックス== 1 && map.size()== 1)|| map.size()== インデックス){
 24                      sqlSelect + =キー+ "=" +値+ "" 25                  } {
 26                      sqlSelect + =キー+ "=" +値+ "" + "と" + "" 27                  }
 28              }
 29          }
 30          のSystem.out.println( "待执行的選択SQL:" + sqlSelect)。
31          リターンsqlSelect。
       ストリングinsertSQL(MAP <ストリング、OBJECT> マップ){
 34          イテレータ<ストリング>イテレータ= map.keySet()反復子()。
35          のStringBuilder SQLTABLE = 新しい StringBuilderの( "挿入" )。
36          のStringBuilder sqlKey = 新しい StringBuilderの( "(" );
 37          のStringBuilder sqlVaule = 新しい StringBuilderの( "値(" );
 38          ながら(iterator.hasNext()){
 39              文字キー= iterator.next();
 40              であれば(マップ。取得(鍵).toString()== NULL || map.get(キー).toString()。長さ()== 0 ){
41                  iterator.remove()。
42              } {
 43                  であれば(key.equals( "tableNameの" )){
 44                      sqlTable.append(map.get(キー))。
45                  } {
 46                      sqlKey.append(+キー"" )。
47                      sqlVaule.append(map.get(キー)+ "" )。
48                  }
 49              }
 50          }
 51         sqlTable.append(sqlKey.toString()。ストリング( 0、sqlKey.toString()のlastIndexOf(」、 "))+ ")")。(sqlVaule.toString()を追加します。ストリング(0、sqlVaule.lastIndexOf(" 、 "))+") " );
 52である          文字列のSQL = sqlTable.toString();
 53である          (するSystem.out.println"が実行されるSQLを挿入します。「+ SQL)を、
 54であり、         リターンSQL;
 55      }
 56はある     * / これは上記の方法の使用は、無視することができる* / 
57であり、     / * パブリック静的無効メイン(文字列[] args){
 58          //メソッドを選択するために呼び出す
 59に         地図の<string、オブジェクト> =新しい新しいマップHashMapを<>();
 60          map.put (「フィールド名」、「特定の値」)。
61          列tableNameの= "表名"。
62はある         のSystem.out.println(selectQuerySQL(地図、tableNameの).toString());
 63れる         // insertメソッドを呼び出す
 64          地図<文字列、オブジェクト> =新しい新しい地図のHashMap <>();
 65          map.put(「フィールド名""特定の値");
 66          map.put(" tableNameの""ここで最後のテーブル名を追加「);
 67          文字列のSQL = INSERT SQL(マップ);
 68          のPreparedStatementなステートメント=のConnection.prepareStatement(SQL);
 69          なステートメント。 (SQL)を実行し; //これはSQL文では、接続接続にJDBCUtilを与える必要性によって実行された
 70      } * / 
71です }

 

おすすめ

転載: www.cnblogs.com/wangquanyi/p/11329035.html