-1

私はいくつかのjspファイルを持っています。それにはいくつかの変数があります。次のように、これらの変数を mysql クエリ内で使用したいと考えています。

String given_session="monsoon";
String given_year="2012";
// note above two will be dynamically added.

ResultSet rs11 = (ResultSet) st11.executeQuery("show tables like '%_Assessment_" + given_session + "_" + given_year+"'");

次の例外が発生しました:

 java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%_Assessment_Monsoon_2013''
4

1 に答える 1

3

より良い、よりエレガントな方法があります。

String tableNamePattern  = "%_Assessment_" + session + "_" + year;

DatabaseMetaData databaseMetaData = conn.getMetaData();
ResultSet rs = databaseMetaData.getTables(null, null, tableNamePattern, 
                                          null);
while(rs.next()) {
    String tableName = rs.getString("TABLE_NAME");
    ...
}

さらに、コードで使用しているものはスマートではないため、Java でのプログラミングのベスト プラクティスを知っておく必要があります。Java Collected Practicesで多くのことを確認できます。

于 2013-10-21T19:20:10.577 に答える