|
@@ -33,23 +33,24 @@ import java.util.logging.Logger;
|
|
|
*/
|
|
|
public class DBKeywordsProcessor {
|
|
|
protected static final Logger logger = Logger.getLogger("DBKeywordsProcessor");
|
|
|
- private static final String ESCAPE_CHARACTER = "`";
|
|
|
- private static final Set<String> KEYWORDS = new HashSet<String>();
|
|
|
+ private static Set<String> KEYWORDS = null;
|
|
|
|
|
|
static {
|
|
|
BufferedReader br = null;
|
|
|
try {
|
|
|
InputStream in = DBKeywordsProcessor.class.getClassLoader().getResourceAsStream("database_keywords.dic");
|
|
|
br = new BufferedReader(new InputStreamReader(in));
|
|
|
+ if (null == KEYWORDS) {
|
|
|
+ KEYWORDS = new HashSet<String>();
|
|
|
+ }
|
|
|
String keyword = null;
|
|
|
while ((keyword = br.readLine()) != null) {
|
|
|
KEYWORDS.add(keyword);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
- logger.warning("If you want to support the keyword query, must have database_keywords.dic \n"
|
|
|
- + e.getMessage());
|
|
|
+ logger.warning("If you want to support the keyword query, must have database_keywords.dic. " + e.getMessage());
|
|
|
} finally {
|
|
|
- if (br != null) {
|
|
|
+ if (null != br) {
|
|
|
try {
|
|
|
br.close();
|
|
|
} catch (IOException e) {
|
|
@@ -57,12 +58,20 @@ public class DBKeywordsProcessor {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * <p>
|
|
|
+ * 数据库关键词转义
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @param keyword
|
|
|
+ * 数据库关键词
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static String convert(String keyword) {
|
|
|
- if (KEYWORDS.contains(keyword)) {
|
|
|
- return new StringBuffer().append(ESCAPE_CHARACTER).append(keyword).append(ESCAPE_CHARACTER).toString();
|
|
|
+ if (null != KEYWORDS && KEYWORDS.contains(keyword)) {
|
|
|
+ return String.format("`%s`", keyword);
|
|
|
}
|
|
|
return keyword;
|
|
|
}
|