简单记录下自己第一次使用slick的蹒跚学步的过程,先说一下我用的是2.x
详细语法可以见
http://wiki.jikexueyuan.com/project/slick-guide/query-one.html
http://thomastoye.be/2015/slick-with-play/
开始
先通过$ sbt “gen-tables” 构造tables.scala,
之后使用table中的lazy进行操作,
操作时一定要由session环境,做法一般是通过在外面包一层slick.DB.withSession { implicit session => //code }
来实现,
或者在函数中加一个隐式参数( implicit session: JdbcBackend#Session)
select数据
- 比较大小用 <, > 等于号和不等于用===,=!=
- filter对应where
- map对应select中的行
- insert一般是通过case class建立一个 然后直接insert
|
|
取出来slick的结果一般用三种方法
- .run 感觉是去除类型里的column
- .list 返回一个list
- .firstoption 返回一个option
update
update就在select的基础上直接.map(_.col1, _.col2).update(val1, val2)
,用map拿出具体字段,然后用update修改
join
还可以用tabls.scala中的lazy值做那个表,用for foreach来操作
|
|
进一步多表join
|
|
insert
insert先用之前table里的代表被插入表的那个cassclass生成一个记录,然后再inset
|
|
delete
在select的结果那里直接delete
其他
transaction是会自动回滚的,一条指令有错,他就整个回滚
slick中只回滚和数据库有关的操作,非数据库操作不会回滚
slick可以用max min avg sum
slick支持原生sql,具体用法见http://wiki.jikexueyuan.com/project/slick-guide/sql.html
本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:http://thousandhu.github.io/2015/10/13/play中使用slick的一些代码片段/