【问题标题】:SetDate with Statement?SetDate 与声明?
【发布时间】:2011-07-18 23:32:55
【问题描述】:

使用PreparedStatement,您只需致电SetDate 即可完成。

如何将Date 与常规Statement 一起传递?

【问题讨论】:

    标签: java date jdbc prepared-statement


    【解决方案1】:

    这取决于您使用的 DBMS,每个 DBMS 可以使用不同的日期文字格式。

    例如在 Oracle 中,您使用:

    UPDATE table SET DATEFIELD = DATE '1998-12-25'
    

    在 MySQL 中:

    UPDATE table SET DATEFIELD = '1998-12-25'
    

    等等

    我建议继续使用PreparedStatement 以避免SQL Injection 攻击。

    【讨论】:

    • JDBC中是否有任何帮助方法可以抽象这个过程?
    • 不这么认为,我会避免它,因为它会使您的应用程序容易受到 SQL 注入 en.wikipedia.org/wiki/SQL_injection
    • 请注意,JDBC 转义是 JDBC 标准的一部分,而不仅仅是 PostgreSQL JDBC 驱动程序的一个特性。
    【解决方案2】:

    您只需使用字符串和 DBMS 提供的函数将字符串转换为日期来构造常规语句。

    大多数DBMS应该有这样的功能。例如,Oracle有一个to_date()。(例如:to_date('2012/01/02', 'yyyy/mm/dd')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多