2011-07-23 55 views
0

简单的问题。我正在使用Java和MySQL数据库。我想写的数据库访问方法是什么将使用PreparedStatement的方法,并会被参数,如:使用参数化和准备语句的数据库访问

public DBResult selectQueryWithParameters(String SQL, Object... params) 

我知道,你可以选择查询做到这一点,但对于DROP,创建和修改查询什么用执行(SQL)方法。同样,您可以执行UPDATE,INSERT和DELETE查询使用executeUpdate(SQL)方法的内容。我可以为这些查询编写参数化方法吗? 致以问候

回答

1

您可以使用Connection的prepareStatement方法来准备语句。然后你可以使用setInt,setString,setXX方法来设置参数。这适用于SELECT,UPDATE,INSERT和DELETE。

为什么要为DROP,CREATE,ALTER创建PreparedStatement? CREATE TABLE stuff(message VARCHAR(?));

对我来说没什么意义。

+0

这是因为当您放置的表作为参数传递时,可能会动态完成DROP或ALTER等活动。由于安全性更好使用参数化方法来做到这一点。 PreparedStatement只是提高了性能。那么,我的问题呢?我可以使这些方法参数化吗? – ucas

+0

如果我没有记错,可以使用DROP,CREATE和ALTER的PreparedStatements。但是,您实际上不能在这些语句中使用参数。我没有验证此评论。所以你可以自己检查一下。话虽如此,我认为这是一种不好的做法。 DROP,CREATE和ALTER应该是罕见的事件,而不是您的应用程序的一部分。 – emory

相关问题