java - SQL语句不加单引号( ' ')

标签 java mysql sql

我正在编写一个 java 程序并且我有一个当前输出错误的 SQL 语句: 所以代码是:

        String sql = "SELECT Name from Users WHERE Name LIKE "+t;

输出是:

SELECT Name from Users WHERE Name LIKE David

但我需要它用单引号引起来,我怎样才能将其添加为:

SELECT Name from Users WHERE Name LIKE 'David'

如何添加这些引号?

非常感谢您的帮助

最佳答案

这是一个很常见的错误。我猜您正在使用 Statement 类来创建查询并执行它。

我想建议您使用准备好的语句。它会解决您的问题并帮助您解决更多问题。

PreparedStatement ps = yourconn.prepareStatement("select name from users where name like ?");

ps.setString(1,yoursearchedusername);

ResultSet rs = ps.executeQuery();

这将添加您的报价。另外,它将防止将来的 sql 注入(inject)攻击。

您当前的查询也会导致您的实际查询出现 ' 或 ?或任何其他 sql 通配符。准备好的语句避免了所有这些问题,并通过将 sql 编译并存储在 db 层(如果启用)来帮助提高性能

关于java - SQL语句不加单引号( ' '),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069652/

相关文章:

java - 在 ie8 和 chrome 中从 javascript 调用 java 方法

java - 奇怪的Java代码: Class in a Class

mysql - SQL - 如何每日导出表

mysql - 获取数据库中每年的记录数

mysql - SQL中DECLARE和SET的区别

mysql - 无法编写列出所有未向特定客户销售的销售人员的查询

sql - 在唯一列中允许空值

java - println 覆盖第一个参数

sql - 相当于 SQL Server 的 Oracle 包含要索引的列

java - 访问android中重写方法的参数的子方法?