Scala学习笔记----Slick

SlickTypeSafe 推出的 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

  • 这将查出平均年龄.同理,最高和最低使用maxmin即可.

    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

暂时只用到这些,有其他的再补充.

你可能感兴趣的:(Scala学习笔记----Slick)