本文来自:fair-jm.iteye.com 转截请注明出处
接着上一篇文
其实具体的都在slick官网的doc中:
http://slick.typesafe.com/doc/2.0.0/
这边就总结了一个CRUD 表结构接着使用笔记(1) 没什么变化(因为没设外键 所以就在单表操作):
Tables.Person来自于上一文 用slick的代码生成器生成
slick2有一套和scala的collection类似的操作(不同的是slick2操作的是Query Query可以通过list方法转变为scala中的List)
package slick_test import org.junit.Test import org.junit.Before import scala.slick.jdbc.JdbcBackend.Database import scala.slick.driver.MySQLDriver.simple._ class TestApp { var database: Database = null @Before def setUp: Unit = { database = Database.forURL(url = "jdbc:mysql://localhost:3306/test", user = "root", password = "", driver = "com.mysql.jdbc.Driver") } @Test def insert: Unit = { database withSession { implicit session => //Tables.Person += new Tables.PersonRow(2, Some(23), Some("cc@test.com"), Some("cc"), Some("1111")) //Tables.Person insert Tables.PersonRow(0, Some(23), Some("cc@test.com"), Some("cc"), Some("1111")) //使用数据库的批量插入(如果数据库支持的话) Tables.Person ++= Seq( Tables.PersonRow(0, Some(22), Some("cc@test.com"), Some("cc1"), Some("1111")), Tables.PersonRow(0, Some(22), Some("cc@test.com"), Some("cc2"), Some("1111")), Tables.PersonRow(0, Some(22), Some("cc@test.com"), Some("cc3"), Some("1111")), Tables.PersonRow(0, Some(22), Some("cc@test.com"), Some("cc4"), Some("1111")), Tables.PersonRow(0, Some(22), Some("cc@test.com"), Some("cc5"), None)) } } @Test def query: Unit = { database withSession { implicit session => //使用 SELECT * FROM COFFEES 这边的*是在Person中定义的*方法反射得到的 Tables.Person foreach { case Tables.PersonRow(id, age, email, name, phone) => println(s"id:$id,age:$age,email:$email,name:$name,phone:$phone") } //使用for val q1 = for (p <- Tables.Person) yield (p.email, p.age) q1 foreach println //输出年龄大于21的人名 用了get因为name属性是Option[String] Tables.Person filter { _.age>21 } map {_.name.get} foreach println } } @Test def delete : Unit ={ database withTransaction { implicit session => //删除是先得到查询的Query再执行delete Tables.Person filter { _.id === 17 } delete } } @Test def update : Unit ={ database withSession { implicit session => //操作依旧是在Query上的 和删除的思路是一样的 val q1=Tables.Person.filter(_.id === 2) //更新所有的属性(注意id也会被更新.. q1.update(Tables.PersonRow(2, Some(13), Some("test@test.com"), Some("fairjm"), Some("2222"))) //得到查询语句 println(q1.updateStatement) //得到查询的调用者 println(q1.updateInvoker) //更新单个属性 val q2=Tables.Person.filter(_.id === 2).map(_.name) q2.update(Some("cc")) } } @Test def aggregation : Unit ={ database withSession { implicit session => val ages=Tables.Person map(_.age) //得到的sum不会被立即执行 此外还有max min avg这些聚合函数 val sum=ages.sum //输出sum Query(sum).foreach(println) //打印sum的语句: //select x2.x3 from (select sum(x4.x5) as x3 from (select x6.`age` as x5 from `person` x6) x4) x2 println(sum.selectStatement) } } }
还漏了分页 分页官网上有例子的 我就贴一下代码了:
http://slick.typesafe.com/doc/2.0.0/queries.html 写道
val q2 = coffees.drop(10).take(5)
// compiles to SQL (simplified):
// select "COF_NAME", "SUP_ID", "PRICE", "SALES", "TOTAL"
// from "COFFEES"
// limit 5 offset 10
// compiles to SQL (simplified):
// select "COF_NAME", "SUP_ID", "PRICE", "SALES", "TOTAL"
// from "COFFEES"
// limit 5 offset 10
相关推荐
A simple guide, packed with tutorials that ease you into learning about the Slick game workflow and Slick game library. Who this book is written for If you are a game programmer who would like to ...
slick2d-maven.zip,slick2d库使用示例slick2d gava游戏开发库的七个发行版
文档里整理了slickedit使用四年多来的技巧和相关设置。
slickedit 的一些使用技巧,帮助开发者快速掌握silkedit工具
钓鱼女孩,使用 Slick 2d 的简单钓鱼游戏。 文件 Fishing-Girl-master.zip 包含以下条目。 .classpath/*w w w . j a va 2s . com*/ .gitignore .project .settings/org.eclipse.jdt.core.prefs OpenAL32.dll data/...
非本人原创,原有说明基于老版本的slickedit和MDK,在此作者使用最新版本的工具做了重新编辑并验证通过。 使用一个简单的工程来演示slickedit2018中编译MDK5项目。里面有详细的说明文档和工程代码
解压方法step 1三个文件合成一个cat slickedit_linux_32bit.tar.gz.a* >slickedit.tar.gz step 2 tar xzvf slickedit.tar.gz slickedit 2014 v19 linux 32位版的 已经和谐了,step1:解压后执行vsinst安装,安装过程...
SlickEdit_2009使用,very good!
slickedit 17.0.2 linux vs_exe 覆蓋即可
如果有使用slickedit來開發BIOS, 一些副檔案無法高亮度字型,例如*.dec, *.dsc, *.fdf, *.uni, *.vfr, 導入此語法可以幫助BIOS工程師更容易review source code 順便提供ACPI裡面的ASL code的高亮度語法
CS145MP2 使用 Slick2D 游戏库用 Java 编写的网络游戏如何: 注意:创建主类时会创建一个 bash 文件注意:确保该文件具有执行 bash 脚本的适当权限在终端chmod 755 更改 bash 脚本类型的权限编译 javac -cp ".:../...
slick-repo:基于Slick的持久化Scala项目的CRUD存储库
这是一个简单的Python CRUD应用程序,它使用了佛罗里达州立大学科学计算系的数据( )以及Flask和SQLite3教简单MySQL查询。 应用说明: 该CRUD应用程序为用户通过GUI执行的简单数据库操作提供了MySQL查询代码。 ...
Slickedit2012 Part2 (带破解,可破解全部版本)
slickedit 17.0.0.8安装包及其破解文件(linux 64位系统 part 2) slickedit 官网已更新到17.0.2, 目前没有破解文件。 网上的17.0.0.8安装包基本找不到, 我这里有备份,其中包含破解文件。 文件太大, 我分成两个...
Slickedit2014 Linux64 Part2 (带破解)
slickedit 16.0.0.3 绿色 破解版,自己做的,非常方便,运行.\config\start_slickedit16.bat即可,生成的配置也在.\config下
SlickGrid是一个简单的、快速、灵活的表格控件。可以隐藏/显示列,调整列宽度,排序,自定义单元格展示格式和编辑器,支持编辑和创建新记录。
slick.min.js
一共是2个压缩文件,用7ZIP压缩。都下完以后放在同目录下,改成同文件名即可。格式如下第一个文件改成如:文件名.7z.00x 格式,其中最后一个字符x是数字1.例:第一个文件的文件名为 SlickEdit 13.0.0.7z.001 ,Slick...