Changeset: d4c3db270e9a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d4c3db270e9a
Modified Files:
        java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
Branch: Dec2011
Log Message:

setObject: support java.util.Date and Calendar classes

As mandated by JDBC 4.1, map java.util.Date and Calendar to CHAR,
VARCHAR, LONGVARCHAR, DATE, TIME and TIMESTAMP.


diffs (53 lines):

diff --git a/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java 
b/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
--- a/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
+++ b/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
@@ -1442,7 +1442,9 @@ public class MonetPreparedStatement
                        }
                } else if (x instanceof java.sql.Date ||
                                x instanceof Timestamp ||
-                               x instanceof Time)
+                               x instanceof Time ||
+                               x instanceof Calendar ||
+                               x instanceof java.util.Date)
                {
                        switch (targetSqlType) {
                                case Types.CHAR:
@@ -1457,6 +1459,12 @@ public class MonetPreparedStatement
                                                setDate(parameterIndex, 
(java.sql.Date)x);
                                        } else if (x instanceof Timestamp) {
                                                setDate(parameterIndex, new 
java.sql.Date(((Timestamp)x).getTime()));
+                                       } else if (x instanceof java.util.Date) 
{
+                                               setDate(parameterIndex, new 
java.sql.Date(
+                                                                       
((java.util.Date)x).getTime()));
+                                       } else if (x instanceof Calendar) {
+                                               setDate(parameterIndex, new 
java.sql.Date(
+                                                                       
((Calendar)x).getTimeInMillis()));
                                        }
                                break;
                                case Types.TIME:
@@ -1466,6 +1474,12 @@ public class MonetPreparedStatement
                                                throw new 
SQLException("Conversion not allowed", "M1M05");
                                        } else if (x instanceof Timestamp) {
                                                setTime(parameterIndex, new 
Time(((Timestamp)x).getTime()));
+                                       } else if (x instanceof java.util.Date) 
{
+                                               setTime(parameterIndex, new 
java.sql.Time(
+                                                                       
((java.util.Date)x).getTime()));
+                                       } else if (x instanceof Calendar) {
+                                               setTime(parameterIndex, new 
java.sql.Time(
+                                                                       
((Calendar)x).getTimeInMillis()));
                                        }
                                break;
                                case Types.TIMESTAMP:
@@ -1475,6 +1489,12 @@ public class MonetPreparedStatement
                                                setTimestamp(parameterIndex, 
new Timestamp(((java.sql.Date)x).getTime()));
                                        } else if (x instanceof Timestamp) {
                                                setTimestamp(parameterIndex, 
(Timestamp)x);
+                                       } else if (x instanceof java.util.Date) 
{
+                                               setTimestamp(parameterIndex, 
new java.sql.Timestamp(
+                                                                       
((java.util.Date)x).getTime()));
+                                       } else if (x instanceof Calendar) {
+                                               setTimestamp(parameterIndex, 
new java.sql.Timestamp(
+                                                                       
((Calendar)x).getTimeInMillis()));
                                        }
                                break;
                                default:
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to