Slick
是 TypeSafe
推出的 Scala
数据库访问库。开发者可以使用 Scala
语言风格来编写数据查询,而不是用 SQL
.
这是Slick2.1
,Slick3.0
略有不同.
这将查询出uid=1 & tombstone=0 的数据,并取第一条.返回的结果是Option
类型.
val userOpt = table.filter(_.uid === 1).filter(_.tombstone === 0).take(1).firstOption
这将查询出uid属于uidSet
的所有数据,并按升序排列,降序为desc
.返回的结果是List
类型.
val userOpt = table.filter(_.uid inSetBind uidSet).sortBy(_.uid.asc).list
这将查出用户名一列(即查询出所有用户名).返回的结果是List
类型.
val unameList = table.map(_.name).run
这将查出平均年龄.同理,最高和最低使用max
和min
即可.
val unameList = table.map(_.age).avg.run
这是一条模糊查询.这将查询出所有用户名中带有"王"字的数据.
val userList = table.filter(_.name like "%"+ "王" + "%").sortBy(_.uid.desc).list
这是带有分页的查询.
val userList = table.filter(_.tombstone === 0).sortBy(_.uid.desc).drop(page * size).take(size).list
这将查出用户数.
val count = table.filter(_.tombstone === 0).length.run
这将插入一条数据,并返回自增id.
val uid = (table returning table.map(_.uid)) += user
这将插入多条数据.
val uidList = (table returning table.map(_.uid)) ++= user
这将修改密码与时间戳.
table.filter(_.uid === uid).filter(_.tombstone === 0).map(row => (row.password, row.updtime))
.update(("要修改的密码", "要修改的时间"))
update
)table.filter(_.id===id).delete
暂时只用到这些,有其他的再补充.