java - jdbc 驱动程序中是否有从 java.sql 类型转换为正确的 sql 字符串的方法?

标签 java mysql sql oracle jdbc

我正在维护一个在 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/

相关文章:

java - 创建不接受重复项的二叉树

mysql - SQL JOIN 与 SQL 数据库 + PhoneGap

java - 更快地查看代码结果的方法

java - 为什么无论我将组件存储在何处,我的 Java 代码都无法在 Eclipse 中运行?

mysql - 如何连接 2 个表并显示所有第一个表甚至第二个表的 where 子句不满足?

python - 使用具有现有数据库 ID 字段的 Django 问题

sql - 为什么这个非常简单的 SQL 查询在 MS Access 中失败?

mysql - SQL 查询具有这些成分的食谱)但不是这些成分)

java - Magnolia CMS - SelectFieldDefinition 的收费对话框

c# - Fluent Nhibernate 将 MySQL Time(6) 映射到 C# DateTime 的问题