ソースを参照

两个 fillstatment 添加 java.util.Date 判断,支持 Oracle、SqlServer 的
TIMESTAMP、DATE 通过 new Date() 给值

James 8 年 前
コミット
52f174b119

+ 8 - 0
src/main/java/com/jfinal/plugin/activerecord/dialect/Dialect.java

@@ -276,6 +276,10 @@ public abstract class Dialect {
 				pst.setDate(i + 1, (java.sql.Date)value);
 			} else if (value instanceof java.sql.Timestamp) {
 				pst.setTimestamp(i + 1, (java.sql.Timestamp)value);
+			} else if (value instanceof java.util.Date) {	// 该分支放在最后,否则另外两项将无意义
+				// Oracle、SqlServer 中的 TIMESTAMP、DATE 支持 new Date() 给值
+				java.util.Date d = (java.util.Date)value;
+				pst.setTimestamp(i + 1, new java.sql.Timestamp(d.getTime()));
 			} else {
 				pst.setObject(i + 1, value);
 			}
@@ -292,6 +296,10 @@ public abstract class Dialect {
 				pst.setDate(i + 1, (java.sql.Date)value);
 			} else if (value instanceof java.sql.Timestamp) {
 				pst.setTimestamp(i + 1, (java.sql.Timestamp)value);
+			} else if (value instanceof java.util.Date) {	// 该分支放在最后,否则另外两项将无意义
+				// Oracle、SqlServer 中的 TIMESTAMP、DATE 支持 new Date() 给值
+				java.util.Date d = (java.util.Date)value;
+				pst.setTimestamp(i, new java.sql.Timestamp(d.getTime()));
 			} else {
 				pst.setObject(i + 1, value);
 			}