gpt4 book ai didi

java - 为什么使用 getter 函数代替 "?"时会出错

转载 作者:行者123 更新时间:2023-12-01 17:44:16 25 4
gpt4 key购买 nike

我尝试使用 get() 函数在 SQL 查询中给出列的值,但它给出了 SQLSyntaxErrorException。

try {
Class.forName("com.mysql.cj.jdbc.Driver");

Connection connect = DriverManager.getConnection("DB URL");

String sl = "INSERT INTO users(username,password)" + "VALUES(" + beans.getUsername() + "," + beans.getPassword() + ")";

PreparedStatement pts = connect.prepareStatement(sl);

pts.executeUpdate();

}

最佳答案

假设1这两列是VARCHAR(或类似列),这些值需要在 SQL 中作为字符串文字提供。但是构建 SQL 的代码并没有在字符串周围加上引号。因此,该 SQL 无效。

创建这样的 SQL 语句的另一个问题是,它可能会使您的应用程序容易受到 SQL Injection 的攻击。 .

PreparedStatement? 解决了这两个问题。 JDBC 驱动程序处理将值安全插入 SQL 所需的任何引用、转义和其他转换。

<小时/>

1 - 此假设基于列名称:用户名密码

关于java - 为什么使用 getter 函数代替 "?"时会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com