光滑和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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |