我是Scala和Slick的新手,并试图用Slick插值编写一个简单的SQL查询.
案例1:我希望概括代码,以便将查询存储为常量.
例如:
val SQL_ALL_TABLE_METADATA: String = """SELECT DISTINCT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'apollo' OR table_schema = 'dpa' ORDER BY table_name""";
Run Code Online (Sandbox Code Playgroud)
并从常量之类的东西创建简单查询
var plainQuery = sql"""$SQL_ALL_TABLE_METADATA""".as[List[String]]
Run Code Online (Sandbox Code Playgroud)
案例2:替换部分查询
例如:从表'table1'获取有关列f_name的信息
var column= "f_name"
var plainQuery = sql"""SELECT $column FROM table1""".as[String]
Run Code Online (Sandbox Code Playgroud)
当我尝试上述情况时它不起作用,因为它看起来像查询在编译时静态绑定.
请注意,到目前为止,我想使用纯SQL并在将来使用高级Slick API.
Dim*_*tri 16
为什么不简单地拥有这个?
val SQL_ALL_TABLE_METADATA: StaticQuery = sql"""SELECT DISTINCT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'apollo' OR table_schema = 'dpa' ORDER BY table_name"""
var plainQuery = SQL_ALL_TABLE_METADATA.as[List[String]]
Run Code Online (Sandbox Code Playgroud)
var column= "f_name"
var plainQuery = sql"""SELECT #$column FROM table1""".as[String]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7379 次 |
| 最近记录: |