Java中是否有一个类或方法可以检查字符串是否是SQL Server关键字?
我想要一个可以检查字符串是否是SELECT、INSERT等的东西。我只是好奇它是否存在。为什么不开始修改它以满足您的需要,甚至可以按照Steve的建议使用hashmap将其转换为Java 就我个人而言,我喜欢存储过程的想法,因为不同的数据库可能有不同的关键字,因此让数据库通过判断似乎很优雅为什么不开始并修改它以满足您的需要,甚至可以按照Steve的建议使用hashmap将其转换为Java 就我个人而言,我喜欢存储过程的想法,因为不同的数据库可能有不同的关键字,因此让数据库通过判断似乎很优雅很容易添加:Java中是否有一个类或方法可以检查字符串是否是SQL Server关键字?,java,sql-server,Java,Sql Server,我想要一个可以检查字符串是否是SELECT、INSERT等的东西。我只是好奇它是否存在。为什么不开始修改它以满足您的需要,甚至可以按照Steve的建议使用hashmap将其转换为Java 就我个人而言,我喜欢存储过程的想法,因为不同的数据库可能有不同的关键字,因此让数据库通过判断似乎很优雅为什么不开始并修改它以满足您的需要,甚至可以按照Steve的建议使用hashmap将其转换为Java 就我个人而言,我喜欢存储过程的想法,因为不同的数据库可能有不同的关键字,因此让数据库通过判断似乎很优雅很容易
HashSet<String> sqlKeywords =
new HashSet<String>(Arrays.asList(
new String[] { ... cut and paste a list of sql keywords here .. }));
很容易添加:
HashSet<String> sqlKeywords =
new HashSet<String>(Arrays.asList(
new String[] { ... cut and paste a list of sql keywords here .. }));
如果您试图阻止SQL注入,那么最好利用JDBC的内置特性,例如预处理语句。通常,使用字符串连接来形成SQL语句是危险的。发件人: 准备的发言:
如果您试图阻止SQL注入,那么最好利用JDBC的内置特性,例如预处理语句。通常,使用字符串连接来形成SQL语句是危险的。发件人: 准备的发言:
DatabaseMetaData.getSQLKeywords将返回不在SQL-2003中的数据库关键字。可以在标准中找到SQL-2003关键字。该接口中还有其他方法可用于获取各种类型的函数名和类似名称
正如Chase Seibert提到的,不要认为这是阻止SQL注入攻击的有效方法。DatabaseMetaData.getSQLKeywords将返回SQL-2003中没有的数据库关键字。SQL-2003关键字可以在标准中找到。该接口中还有其他方法可用于获取各种类型的函数名和类似名称 正如Chase Seibert提到的,不要认为这是阻止SQL注入攻击的有效方法