在 MySQL prepareStatement 中使用 Scala 选项列表或数组
Using Scala Option list or array in MySQL prepareStatement
我正在使用 Spray、Scala 和 MySQL 开发 REST web API。用户必须在 POST 请求中传递数组参数(以及其他参数)。这是一个可选参数。我已经成功地编写了 Scala 函数来获取这些参数,查询 MySQL 数据库并在 JSON 中向用户呈现适当的输出。
但是我被这个数组参数困住了。我在将 Scala Option[Array[String]]
(或列表)转换为 java.sql.array
.
时遇到了一些问题
示例代码如下:
def xyz(a:Option[Array[String]], b:Option[Long]) {
------------
------------
if (a == None && b == None) {
val statement = conn.prepareStatement("select * from table")
var rs = statement.executeQuery()
while (rs.next) {
-------
}
}
else if (a != None && b == None) {
val statement = conn.prepareStatement("select * from MasterInventory
where ID = (?)")
var arr = conn.createArrayof("varchar",a)
statement.setArray(1,arr)
------------
------------
}
createArrayof 需要一个 Java 数组,而不是您当前拥有的 Scala 数组。要转换它,您只需调用 toArray
。
因为你知道 a
不为空,你可以直接调用 get
来获取你的 scala 数组
var arr = conn.createArrayof("varchar", a.get.toArray)
我正在使用 Spray、Scala 和 MySQL 开发 REST web API。用户必须在 POST 请求中传递数组参数(以及其他参数)。这是一个可选参数。我已经成功地编写了 Scala 函数来获取这些参数,查询 MySQL 数据库并在 JSON 中向用户呈现适当的输出。
但是我被这个数组参数困住了。我在将 Scala Option[Array[String]]
(或列表)转换为 java.sql.array
.
示例代码如下:
def xyz(a:Option[Array[String]], b:Option[Long]) {
------------
------------
if (a == None && b == None) {
val statement = conn.prepareStatement("select * from table")
var rs = statement.executeQuery()
while (rs.next) {
-------
}
}
else if (a != None && b == None) {
val statement = conn.prepareStatement("select * from MasterInventory
where ID = (?)")
var arr = conn.createArrayof("varchar",a)
statement.setArray(1,arr)
------------
------------
}
createArrayof 需要一个 Java 数组,而不是您当前拥有的 Scala 数组。要转换它,您只需调用 toArray
。
因为你知道 a
不为空,你可以直接调用 get
来获取你的 scala 数组
var arr = conn.createArrayof("varchar", a.get.toArray)