Java 使用参数化和准备好的语句访问数据库

Java 使用参数化和准备好的语句访问数据库,java,mysql,sql,Java,Mysql,Sql,简单的问题。我正在使用Java和MySQL数据库。我想编写使用PreparedStatement方法并将其参数化的数据库访问方法,例如: public DBResult selectQueryWithParameters(String SQL, Object... params) 我知道您可以对select查询执行此操作,但对于使用execute(SQL)方法的DROP、CREATE和ALTER查询又如何呢。同样,您可以使用executeUpdate(SQL)方法执行更新、插入和删除查询。我

简单的问题。我正在使用Java和MySQL数据库。我想编写使用PreparedStatement方法并将其参数化的数据库访问方法,例如:

 public DBResult selectQueryWithParameters(String SQL, Object... params)
我知道您可以对select查询执行此操作,但对于使用execute(SQL)方法的DROP、CREATE和ALTER查询又如何呢。同样,您可以使用executeUpdate(SQL)方法执行更新、插入和删除查询。我可以为这些查询编写参数化方法吗?
致意

您可以使用Connection的prepareStatement方法来准备语句。然后可以使用setInt、setString、setXX方法设置参数。这适用于选择、更新、插入和删除

为什么要为DROP、CREATE和ALTER创建一个PreparedStatement? 创建表内容(消息VARCHAR(?)


这对我来说没有多大意义。

这是因为当您删除的表作为参数传递时,诸如DROP或ALTER之类的活动可能会动态完成。由于安全原因,最好使用参数化方法来实现这一点。PreparedStatement只是提高了性能。那么,我的问题呢?我可以将这些方法参数化吗?如果我没有记错,您可以使用PreparedStatements进行删除、创建和更改。但是,这些语句中实际上不能包含参数。我没有证实这一评论。所以你可以自己检查一下。话虽如此,我认为这是一种不好的做法。DROP、CREATE和ALTER应该是罕见的事件,而不是应用程序的一部分。