【问题标题】:JDBC general query executionJDBC 通用查询执行
【发布时间】:2010-09-07 01:51:34
【问题描述】:

有没有办法在 JDBC 中执行通用查询? 我的意思是运行类似 execute(String strSql) 的东西,其中 strSql 可以是一个 SELECT、一个 INSERT、一个 UPDATE、一个 CREATE 等等。

如果没有,你会如何解决这个问题?

建议的解决方案:

@Override
public void execQuery(String Query) throws SQLException {
    this.statement = this.connection.createStatement();
    if (this.statement.execute(Query)) {
        this.resultset = this.statement.getResultSet();
    }
}

【问题讨论】:

  • 哦,天哪...对不起,我刚刚在我的一个旧资源中偶然找到了解决方案,以下函数解决了这个问题:
  • @Override public void execQuery(String Query) throws SQLException { this.statement = this.connection.createStatement(); if (this.statement.execute(Query)){ this.resultset = this.statement.getResultSet(); } }
  • 重新格式化的代码;如果不正确,请恢复。

标签: java sql jdbc


【解决方案1】:

请注意,您提出的解决方案容易受到SQL injection 攻击。请改用java.sql.PreparedStatement,如Using Prepared Statements 中所述。

【讨论】:

  • 嗨,垃圾神,感谢您格式化我的代码!然后,我正在开发的应用程序执行用户的 SQL,因此 SQL 注入根本不是问题;)
  • 顺便说一句,我的应用程序是针对开发人员的,它允许在数据库上运行查询,这就是 SQL 注入的原因。不是问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多