java - java中单引号内的当前日期

标签 java oracle

static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd- MMM-yyyy");
static String date = simpleDateFormat.format(new Date());

private static final String SELECT_BY_AUDIT_KEY_QUERY = "SELECT * FROM 
     t02 WHERE t02_create_date = " + date;

这输出为:

SELECT * FROM t02_transaction_log WHERE t02_create_date = 03-Jul-2018

我想要的是:

SELECT * FROM t02_transaction_log WHERE t02_create_date = '03-Jul-2018'

我怎样才能在单引号之间获取日期?

最佳答案

你应该在这里使用准备好的语句:

String sql = "SELECT * FROM t02 WHERE t02_create_date = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDate(1, new Date());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
    // process result set
}

虽然语句对于防止诸如 SQL 注入(inject)之类的事情很重要,但它们同样有用,因为它们使您不必担心查询中的格式设置细节。在上面的查询字符串中,我们只是用 ? 占位符表示日期,并让驱动程序将当前日期编码为正确的格式以发送给 Oracle。

关于java - java中单引号内的当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152513/

相关文章:

java - 如何从Java代码中的数据库表中获取最大ID

java - 可变参数数组的组件类型是如何确定的?

java - 如何从 JAVA 中的日期获取 md5 总和,例如在 oracle 中?

.net 4.5 中的 Oracle 存储过程

mysql - 对于必须连接到 MsSql、Mysql 和 Oracle 数据库的 asp.net 应用程序来说, Entity Framework 是一个不错的选择吗?

oracle - 无法使用 sqoop 列出 oracle 表名

java - 在java中写入文件的最快方法

java - Sqlite 语法错误

java - 为什么 setOnChangeListener 不能正常工作?

oracle - 如何确定 PL/SQL 参数值是否为默认值?