[英]Ignite - use variable in sql command?
我希望使用sql命令從緩存中讀取數據。 由於sql命令每次都是動態的,因此我需要將其作為變量輸入,但不支持在sql命令中使用變量。 這是我的代碼:
import com.typesafe.config.{Config, ConfigFactory}
import com.zaxxer.hikari.{HikariConfig, HikariDataSource}
import javax.sql.DataSource
import scalikejdbc._
//load config from application.conf
lazy val config: Config = ConfigFactory.load("application.conf")
val md: DataSource = {
val hikariConfig = new HikariConfig()
hikariConfig.setJdbcUrl(config.getString("jdbc.ignite.url"))
hikariConfig.setUsername(config.getString("jdbc.ignite.username"))
hikariConfig.setPassword(config.getString("jdbc.ignite.password"))
hikariConfig.setDriverClassName(config.getString("jdbc.ignite.driver"))
val ds = new HikariDataSource(hikariConfig)
ds
}
ConnectionPool.singleton(new
DataSourceConnectionPool(inMemoryDataSource))
val inMemoryDbName: String = config.getString("jdbc.ignite.name")
ConnectionPool.add(inMemoryDbName, new
DataSourceConnectionPool(inMemoryDataSource))
lazy val inMemorySession: DBSession = AutoSession
lazy val inMemoryDatabaseExecutorContext: ExecutionContext =
ExecutionContext.fromExecutorService(Executors.newFixedThreadPool(1))
def getAggResult(query: String) = DB readOnly {
implicit session =>
sql"$query".map(_.toMap()).list().apply()
}
問題是我使用的“ $”,錯誤提示:
java.sql.SQLException: Failed to parse query. Syntax error in SQL
statement "?[*]"; expected "[, ::, ="; SQL statement:
query
是一個選擇命令,例如select field1, field2 from table name where condition1 like value1
如何解決?
對不起,那是我的錯誤,我改變了
sql"$query".map(_.toMap()).list().apply()
至
SQL(s"${query}").map(_.toMap()).list().apply()
而且有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.