加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

光滑和scala:什么是TableQueries?

发布时间:2020-12-16 19:08:04 所属栏目:安全 来源:网络整理
导读:我对光滑和放松感到有点失望它的TableQueries:应用程序的模型可以是“类Persons(tag:Tag)扩展表[Person]例如(其中Person是一个包含名称,年龄,地址等字段的案例类). 奇怪的是“val persons = TableQuery [Persons]”包含所有记录. 举例来说,我们可以使用:
我对光滑和放松感到有点失望它的TableQueries:应用程序的模型可以是“类Persons(tag:Tag)扩展表[Person]例如(其中Person是一个包含名称,年龄,地址等字段的案例类).
奇怪的是“val persons = TableQuery [Persons]”包含所有记录.

举例来说,我们可以使用:

adults = persons.filter(p => p.age >= 18).list()

数据库的内容是否在变量人员中加载?
相反,是否有一种机制可以评估不是“人”而是“成年人”?(一种懒惰的变量)?
我们可以说“在任何时候”,人们“包含整个数据库”吗?

有没有好的做法,一些可以帮助开发人员的重要想法?

谢谢.

解决方法

你错误地假设人包含所有记录. Table和TableQuery类是SQL表的表示,并且库的重点是通过提供方便的类似Scala的语法来简化与SQL数据库的交互.

当你说

val adults = persons.filter{ p => p.age >= 18 }

您基本上创建了一个您可以想到的SQL查询

SELECT * FROM PERSONS WHERE AGE >= 18

然后,当您调用.list()时,它会执行该查询,将结果行从数据库转换回Person案例类的实例.与光滑的Table或Query类有关的大多数方法都将专注于生成查询(即“select”语句).在您调用它们之前,它们实际上并不加载任何数据(例如,通过调用.list()或.foreach).

至于良好做法和重要想法,我建议你阅读他们的文档,并看看你感兴趣的任何课程的scaladocs.

http://slick.typesafe.com/docs/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读