【Slick SQL】如何将列表参数传递到in中
2022/3/26 19:22:58
本文主要是介绍【Slick SQL】如何将列表参数传递到in中,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考:scala - implicit value for slick.jdbc.SetParameter[List[Int]] - Stack Overflow
解决办法示例:
def myMethod(actions: List[Int]) = sql"""select something from my_table where action in #${actions.mkString("(", ",", ")")}""".as[MyType]
关键点:使用#$ 而非 $
Another danger is with the #$ style of subsঞtuঞon. This is called splicing, and is used when you don’t want SQL escaping to apply. For example, perhaps the name of the table you want to use may change:
val table = "room" // table: String = "room" val splicedAction = sql""" select "id" from "#$table" """.as[Long] // splicedAction: slick.sql.SqlStreamingAction[Vector[Long], Long, Effect] = slick.jdbc.SQLActionBuilder$$anon$1@26c72ad2
In this situaঞon we do not want the value of table to be treated as a String.
If we did, it’d be an invalid query: select "id" from "'message'" (noঞce the double quotes and single quotes around the table name, which is not valid SQL). This means you can produce unsafe SQL with splicing. The golden rule is to never use #$ with input supplied by users.这篇关于【Slick SQL】如何将列表参数传递到in中的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享