我正在维护一个在 mysql 数据库上运行的旧项目。我必须将该项目从 mysql 迁移到 oracle db,以保持与旧 db (mysql) 的兼容性。在那个项目中有很多手动构建的查询,然后我不能使用 PreparedStatement 接口(interface)和设置参数来执行查询,但我手动构建查询字符串并使用简单的语句。所以我想知道 jdbc 驱动程序中是否有一种方法可以将 java.sql 类型转换为正确的 sql 字符串(带引号或不带引号),特别是对于日期格式。
对于代码:
Date date = new Date(System.currentTimeMillis());
try {
Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException e) {}
System.out.println(date.toString());
输出是:
2015-10-23
如果我使用 oracle 驱动程序或 mysql 驱动程序。
我的输出是:
2015-10-23 with mysql driver
23-OCT-15 with oracle driver
谢谢
最佳答案
使用日期格式来获得一致的日期字符串。
以下代码根据传递给 SimpleDateFormat 构造函数的模式字符串格式化日期和时间。 format 方法返回的字符串包含要显示的格式化日期和时间。
Date today;
String output;
SimpleDateFormat formatter;
String pattern="yyyy-MM-dd";
formatter = new SimpleDateFormat(pattern, currentLocale);
today = new Date();
output = formatter.format(today);
System.out.println(pattern + " " + output);
关于java - jdbc 驱动程序中是否有从 java.sql 类型转换为正确的 sql 字符串的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297520/