本文来自: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
相关推荐
《Slick2D游戏开发库详解与实例演示》 Slick2D,作为一个基于Java的2D游戏开发库,为开发者提供了丰富的功能和便捷的API,使得2D游戏的创建变得简单而高效。这个名为“slick2d-examples-1.0.1.zip”的压缩包,包含...
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 ...
钓鱼女孩,使用 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 使用技巧积累 SlickEdit 是一款功能强大且价格昂贵的编辑器,拥有许多实用的功能和技巧。本文将对 SlickEdit 的一些使用技巧进行总结和讲解,帮助开发者快速掌握 SlickEdit 工具。 1. 隐藏某个大括号内...
### SlickEdit 使用技巧详解 #### 一、快速进入命令行 - **操作步骤**:按`Esc`键可在编辑界面和命令行之间快速切换。此功能有助于提高工作效率,尤其是在进行复杂的查找替换或执行特定命令时更为便捷。 #### 二、...
SLICK轮播图插件是一款在前端开发中广泛使用的JavaScript插件,专为创建美观、交互性强的轮播图而设计。它具有多种功能,能满足开发者对于动态展示内容的需求,如图片滑动、自动播放、分页指示器、箭头导航等。这款...
Slick2D是一个基于Java的2D游戏库,它为开发者提供了丰富的图形绘制功能,简化了2D游戏的开发流程。这款库是基于LWJGL( Lightweight Java Game Library )构建的,允许开发者在Java平台上创建高性能的游戏应用。在...
《SlickEdit Gadgets 2 for VS2005:高效编程的实用工具》 在软件开发领域,Visual Studio 2005是一款备受推崇的集成开发环境(IDE),为程序员提供了丰富的功能和便利。然而,为了进一步提升开发效率,许多开发者...
总的来说,这个压缩包为用户提供了便捷的SlickEdit使用方式,特别是对于偏好中文界面的用户,汉化包的加入使得这款强大的编辑器更加友好。然而,用户在享受其带来的便利时,也应对潜在的风险有所认识,遵循合法、...
slickedit 2012 17.0.2 windows 32位 和谐版,大家都懂的。 详细过程参见http:// zhiwei.li /text/2012/06/slickedit-2012/comment-page-1/
通过对这些文件的研究,你可以快速上手并掌握Slick的使用方法。 总的来说,Slick以其简洁的代码结构、强大的功能和出色的性能,成为众多开发者心中的首选轮播插件。无论你是初学者还是经验丰富的前端工程师,Slick...
这个名为"SlickGrid-master.zip"的压缩包很可能包含了SlickGrid的完整源代码和相关资源,让我们深入了解一下SlickGrid的核心特性和使用方法。 首先,SlickGrid的灵活性体现在其允许用户自由地隐藏和显示列。这在...
解压方法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安装,安装过程...
2. **初始化插件**:在DOM加载完成后,使用jQuery选择器找到要转化为幻灯片的元素,并调用`.slick()`方法进行初始化。例如: ```javascript $('.slider').slick({ dots: true, // 显示分页点 infinite: true, //...
《SlickEdit v27 Linux 64 专业版:高效编程的新篇章》 SlickEdit v27 是一款专为Linux 64位操作系统设计的专业级代码编辑器,它以其强大的功能和高效的编程体验而备受程序员的青睐。在这款软件中,开发者可以享受...
5. **模块化**:Slick插件使用模块化结构,便于代码管理和扩展。 6. **兼容性**:与jQuery库无缝集成,兼容主流浏览器,包括Chrome、Firefox、Safari、Edge和IE9+。 **使用步骤** 1. **引入资源**:在HTML文件中...
根据提供的信息,我们可以总结出以下相关知识点,这些知识点主要聚焦于"Slick-3"这一数据库访问库的基础使用方法以及如何通过Scala语言进行高效的数据查询与操作。 ### Slick-3 简介 Slick-3 是一个用于 Scala 的...
3. **CRUD操作**:在"Slick-repo"中,CRUD操作被设计成易于使用的API,比如`create`, `read`, `update` 和 `delete`,这些操作通常会映射到SQL的INSERT, SELECT, UPDATE 和 DELETE语句。 4. **Repository模式**:这...
2. **数据库连接**: Slick使用`Database`对象来管理与数据库的连接。我们需要提供数据库的URL、用户名、密码等信息来创建`Database`实例。 ```scala import slick.jdbc.H2Profile.api._ val db = Database....