/
PositionedParameters.scala
110 lines (103 loc) · 4.79 KB
/
PositionedParameters.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package scala.slick.jdbc
import java.sql.{PreparedStatement, Date, Time, Timestamp, Types, Blob, Clob}
class PositionedParameters(val ps: PreparedStatement) {
var pos = 0
def >> [T](value: T)(implicit f: SetParameter[T]): Unit = f(value, this)
def setNull(sqlType: Int) { val npos = pos + 1; ps.setNull(npos, sqlType); pos = npos }
def setBoolean(value: Boolean) { val npos = pos + 1; ps.setBoolean (npos, value); pos = npos }
def setBlob(value: Blob) { val npos = pos + 1; ps.setBlob (npos, value); pos = npos }
def setByte(value: Byte) { val npos = pos + 1; ps.setByte (npos, value); pos = npos }
def setBytes(value: Array[Byte]) { val npos = pos + 1; ps.setBytes (npos, value); pos = npos }
def setClob(value: Clob) { val npos = pos + 1; ps.setClob (npos, value); pos = npos }
def setDate(value: Date) { val npos = pos + 1; ps.setDate (npos, value); pos = npos }
def setDouble(value: Double) { val npos = pos + 1; ps.setDouble (npos, value); pos = npos }
def setFloat(value: Float) { val npos = pos + 1; ps.setFloat (npos, value); pos = npos }
def setInt(value: Int) { val npos = pos + 1; ps.setInt (npos, value); pos = npos }
def setLong(value: Long) { val npos = pos + 1; ps.setLong (npos, value); pos = npos }
def setShort(value: Short) { val npos = pos + 1; ps.setShort (npos, value); pos = npos }
def setString(value: String) { val npos = pos + 1; ps.setString (npos, value); pos = npos }
def setTime(value: Time) { val npos = pos + 1; ps.setTime (npos, value); pos = npos }
def setTimestamp(value: Timestamp) { val npos = pos + 1; ps.setTimestamp (npos, value); pos = npos }
def setBigDecimal(value: BigDecimal) { val npos = pos + 1; ps.setBigDecimal(npos, value.bigDecimal); pos = npos }
def setObject(value: AnyRef, sqlType: Int) { val npos = pos + 1; ps.setObject(npos, value, sqlType); pos = npos }
def setBooleanOption(value: Option[Boolean]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.BOOLEAN) else ps.setBoolean(npos, value.get)
pos = npos
}
def setBlobOption(value: Option[Blob]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.BLOB) else ps.setBlob(npos, value.get)
pos = npos
}
def setByteOption(value: Option[Byte]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.TINYINT) else ps.setByte(npos, value.get)
pos = npos
}
def setBytesOption(value: Option[Array[Byte]]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.BLOB) else ps.setBytes(npos, value.get)
pos = npos
}
def setClobOption(value: Option[Clob]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.CLOB) else ps.setClob(npos, value.get)
pos = npos
}
def setDateOption(value: Option[Date]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.DATE) else ps.setDate(npos, value.get)
pos = npos
}
def setDoubleOption(value: Option[Double]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.DOUBLE) else ps.setDouble(npos, value.get)
pos = npos
}
def setFloatOption(value: Option[Float]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.FLOAT) else ps.setFloat(npos, value.get)
pos = npos
}
def setIntOption(value: Option[Int]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.INTEGER) else ps.setInt(npos, value.get)
pos = npos
}
def setLongOption(value: Option[Long]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.INTEGER) else ps.setLong(npos, value.get)
pos = npos
}
def setShortOption(value: Option[Short]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.SMALLINT) else ps.setShort(npos, value.get)
pos = npos
}
def setStringOption(value: Option[String]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.VARCHAR) else ps.setString(npos, value.get)
pos = npos
}
def setTimeOption(value: Option[Time]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.TIME) else ps.setTime(npos, value.get)
pos = npos
}
def setTimestampOption(value: Option[Timestamp]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.TIMESTAMP) else ps.setTimestamp(npos, value.get)
pos = npos
}
def setBigDecimalOption(value: Option[BigDecimal]) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, Types.DECIMAL) else ps.setBigDecimal(npos, value.get.bigDecimal)
pos = npos
}
def setObjectOption(value: Option[AnyRef], sqlType: Int) {
val npos = pos + 1
if(value eq None) ps.setNull(npos, sqlType) else ps.setObject(npos, value.get, sqlType)
pos = npos
}
}