我知道PreparedStatements可以避免/防止SQL注入。它是如何做到的?使用PreparedStatements构造的最终表单查询是否为字符串?
SQL注入的问题在于,用户输入被用作SQL语句的一部分。通过使用准备好的语句,您可以强制将用户输入作为参数的内容(而不是SQL命令的一部分)进行处理。
但是,如果您不使用用户输入作为已准备好的语句的参数,而是通过将字符串连接在一起来构建SQL命令,那么即使使用已准备好的语句,您 仍然容易受到SQL注入的攻击 。