我有一些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''
答案 0 :(得分: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中看到很多内容。