allow null for primitive types;
authorwenzelm
Fri, 28 Apr 2017 16:52:07 +0200
changeset 65612 f70e918105da
parent 65611 a4a7841ae84f
child 65613 cfcafe9824d1
allow null for primitive types;
src/Pure/General/sql.scala
--- a/src/Pure/General/sql.scala	Fri Apr 28 15:54:14 2017 +0200
+++ b/src/Pure/General/sql.scala	Fri Apr 28 16:52:07 2017 +0200
@@ -211,9 +211,29 @@
     /* input */
 
     def set_bool(stmt: PreparedStatement, i: Int, x: Boolean) { stmt.setBoolean(i, x) }
+    def set_bool(stmt: PreparedStatement, i: Int, x: Option[Boolean])
+    {
+      if (x.isDefined) set_bool(stmt, i, x.get)
+      else stmt.setNull(i, java.sql.Types.BOOLEAN)
+    }
     def set_int(stmt: PreparedStatement, i: Int, x: Int) { stmt.setInt(i, x) }
+    def set_int(stmt: PreparedStatement, i: Int, x: Option[Int])
+    {
+      if (x.isDefined) set_int(stmt, i, x.get)
+      else stmt.setNull(i, java.sql.Types.INTEGER)
+    }
     def set_long(stmt: PreparedStatement, i: Int, x: Long) { stmt.setLong(i, x) }
+    def set_long(stmt: PreparedStatement, i: Int, x: Option[Long])
+    {
+      if (x.isDefined) set_long(stmt, i, x.get)
+      else stmt.setNull(i, java.sql.Types.BIGINT)
+    }
     def set_double(stmt: PreparedStatement, i: Int, x: Double) { stmt.setDouble(i, x) }
+    def set_double(stmt: PreparedStatement, i: Int, x: Option[Double])
+    {
+      if (x.isDefined) set_double(stmt, i, x.get)
+      else stmt.setNull(i, java.sql.Types.DOUBLE)
+    }
     def set_string(stmt: PreparedStatement, i: Int, x: String) { stmt.setString(i, x) }
     def set_bytes(stmt: PreparedStatement, i: Int, bytes: Bytes)
     {