9

Jdbcテンプレートを介して任意のWHERE条件SQLクエリを生成することは可能ですか:

例:

1 つのパラメーター (名前のみ) の値を渡す場合: 名前で検索

"select * from address where shopname = ?";

2 つのパラメーター (名前と市区町村) の値を渡す場合 - ショップ名と市区町村で検索:

"select * from address where shopname = ? and city = ?";

複数の検索フィールドがあります。7分野。ユーザーが任意の組み合わせを入力した場合。パラメータに基づいてのみ検索しています。パラメータをSQLに動的に渡す方法。これを達成する方法のスニペット/例が必要です。

4

4 に答える 4

11

あなたが望むのは、Hibernate が持っている何らかの基準構築 API です。残念ながら、Spring の JdbcTemplate にはそのような機能はないと思います。私が間違っていれば、他の人が私を訂正します...

于 2011-05-22T15:45:18.963 に答える
0

Spring Data と Hibernate にはそのような機能があります。アプリのこのような大きなフレームワークにドラッグする価値はないかもしれませんが.

SimpleJdbcInsert http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.htmlをチェックしてみてください。

編集: または、空をチェックして SQL で修正することもできますが、通過するデータが多い場合、この手法はリクエストの速度を低下させます。

"select * from address 
where (shopname = ? or shopname = null)
 and (city = ? or city = null)";
于 2015-03-17T13:49:33.690 に答える
-3

Scalaがオプションである場合、クエリは次のように作成できます。

case class Search(shopname:String, city:String = None) {
 def sql = "select * from address where shopname = '"+shopname+"'" + city.map(" and city = '"+
      _ +"'").getOrElse("")  
}

使用例:

Search("lloh").sql
Search("lloh", Some("Austin")).sql
于 2011-05-26T20:44:54.507 に答える