本文来自 http://fair-jm.iteye.com 转截请注明出处
本文是slick2 笔记1和2的补充 在实际使用下的一些操作
使用SourceCodeGenerator生成实体和操作类
这个类没有提供用户名和密码的参数 所以需要自己改写一个
直接根据scala.slick.model.codegen.SourceCodeGenerator改就可以了
一个例子:
package mysql_sourceGen import scala.slick.{ model => m } import scala.slick.model.codegen._ class MySQLSourceCodeGenerator(model: m.Model) extends AbstractSourceCodeGenerator(model) with OutputHelpers { type Table = TableDef def Table = new TableDef(_) class TableDef(model: m.Table) extends super.TableDef(model) { type EntityType = EntityTypeDef def EntityType = new EntityType {} type PlainSqlMapper = PlainSqlMapperDef def PlainSqlMapper = new PlainSqlMapper {} type TableClass = TableClassDef def TableClass = new TableClass {} type TableValue = TableValueDef def TableValue = new TableValue {} type Column = ColumnDef def Column = new Column(_) type PrimaryKey = PrimaryKeyDef def PrimaryKey = new PrimaryKey(_) type ForeignKey = ForeignKeyDef def ForeignKey = new ForeignKey(_) type Index = IndexDef def Index = new Index(_) } } object MySQLSourceCodeGenerator { import scala.slick.driver.JdbcProfile import scala.reflect.runtime.currentMirror def main(args: Array[String]) = { args.toList match { case List(slickDriver, jdbcDriver, url, outputFolder, pkg, user, pass) => { val driver: JdbcProfile = { val module = currentMirror.staticModule(slickDriver) val reflectedModule = currentMirror.reflectModule(module) val driver = reflectedModule.instance.asInstanceOf[JdbcProfile] driver } driver.simple.Database .forURL(url, driver = jdbcDriver, password = pass, user = user) .withSession { implicit session => (new SourceCodeGenerator(driver.createModel)).writeToFile(slickDriver, outputFolder, pkg) } } case _ => { println(""" Usage: SourceCodeGenerator.main(Array( slickDriver, jdbcDriver, url, outputFolder, pkg )) slickDriver: Fully qualified name of Slick driver class, e.g. "scala.slick.driver.H2Driver" jdbcDriver: Fully qualified name of jdbc driver class, e.g. "org.h2.Driver" url: jdbc url, e.g. "jdbc:postgresql://localhost/test" outputFolder: Place where the package folder structure should be put pkg: Scala package the generated code should be places in user: DataBase's username pass : the user's password """.trim) } } } }
我起的名字有歧义 这个不只是mysql可以用 所有都可以用 你传入driver的字符串就可以了
多表以及分页查询的例子:
SlickDB.database.withSession { implicit session => val query = for { cid <- Tables.Category.filter(_.name === tag).map(_.id) aids <- Tables.ArticleCategory.filter(_.cId === cid).map(_.aId) article <- Tables.Article.filter(_.id === aids) } yield article ((query.length.run-1) /Constants.PageSize +1, query.sortBy(_.time desc).drop((page - 1) * Constants.PageSize).take(Constants.PageSize).list) }
从tag表拿出tag得到对应的cid 根据对应的cid找到文章的aid 根据文章的id得到文章
多对多查询有中间表时使用的例子
后面的分页 按照时间降序 得到第page(从1开始)页的数据
插入得到id的例子:
val aid = (Tables.Article returning Tables.Article.map(_.id)) += article
类似于postgresql的 returnning
相关推荐
本文将对 SlickEdit 的一些使用技巧进行总结和讲解,帮助开发者快速掌握 SlickEdit 工具。 1. 隐藏某个大括号内的内容 SlickEdit 提供了隐藏大括号内的内容的功能,这可以帮助开发者快速隐藏不需要的代码。操作...
根据提供的信息,我们可以总结出以下相关知识点,这些知识点主要聚焦于"Slick-3"这一数据库访问库的基础使用方法以及如何通过Scala语言进行高效的数据查询与操作。 ### Slick-3 简介 Slick-3 是一个用于 Scala 的...
《Slick2D游戏开发库详解与实例演示》 Slick2D,作为一个基于Java的2D游戏开发库,为开发者提供了丰富的功能和便捷的API,使得2D游戏的创建变得简单而高效。这个名为“slick2d-examples-1.0.1.zip”的压缩包,包含...
No previous knowledge of Slick 2D or any other Java game library is required. This book assumes that you have basic Java syntax and object oriented programming knowledge. Book Details Paperback: 116...
钓鱼女孩,使用 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 使用技巧详解 #### 一、快速进入命令行 - **操作步骤**:按`Esc`键可在编辑...以上是SlickEdit中一些常用且高效的使用技巧汇总,这些技巧不仅能够提升编程效率,还能帮助开发者更好地管理和维护代码。
本文将深入探讨jQuery Slick插件的实例应用,以及如何利用它来构建各种类型的滑动展示。 首先,jQuery Slick插件的核心特性包括: 1. **多列布局**:Slick支持多列布局,可以在同一幻灯片组件中展示多个并排的项目...
2. **编译并运行**:使用SlickEdit中的“Build”菜单来编译项目,编译成功后,将生成的目标文件下载到目标板上进行测试。 #### 五、总结 通过上述步骤,我们可以使用SlickEdit和Yagarto构建一个高效、稳定的Cortex...
SlickGrid是一个强大的JavaScript库,专门用于在Web应用中展示大量数据并进行高效的数据操作。它的设计目标是提供一个轻量级、可定制且性能出色的表格控件,尤其适合处理成千上万条记录的数据集。这个名为"SlickGrid...
SLICK轮播图插件是一款在前端开发中广泛使用的JavaScript插件,专为创建美观、交互性强的轮播图而设计。它具有多种功能,能满足开发者对于动态展示内容的需求,如图片滑动、自动播放、分页指示器、箭头导航等。这款...
在实际应用中,SlickGrid通常与其他前端框架如Angular、React或Vue等结合使用,通过API接口与后端进行数据交互,实现数据的动态加载和实时更新。其开源的特性使得开发者可以深入理解并定制化这个控件,以适应项目的...
学习Block-Slick时,建议先熟悉Scala和Slick3的基本概念,包括类型安全的SQL查询、配置数据库连接以及如何处理异步操作。了解这些基础知识后,再学习Block-Slick的使用,会更加得心应手。 总的来说,Block-Slick是...
《SlickEdit Gadgets 2 for VS2005:高效编程的实用工具》 在软件开发领域,Visual Studio 2005是一款备受推崇的集成开发环境(IDE),为程序员提供了丰富的功能和便利。然而,为了进一步提升开发效率,许多开发者...
"slick响应式轮播焦点图"是一个广泛应用于网站设计中的组件,它允许用户在有限的空间内展示多张图片或内容,通过滑动效果提供一种优雅的用户体验。Slick是一个JavaScript库,专门用于创建高性能、响应式的轮播插件。...
SlickGrid是一款高效、强大的基于jQuery的表格插件,它为开发者提供了丰富的功能,以便在Web应用中展示和操作大量数据。SlickGrid最初由Morten Jensen开发,其核心特性在于高性能的数据渲染和交互性,尤其适用于处理...
5. **扩展性**: Slick与其他Scala库如Akka、Play Framework等有良好的集成,可以方便地在异步环境中使用。 ### 三、Slick的使用场景 Slick适用于需要高性能、类型安全的数据库操作的Scala项目,尤其在微服务架构中...
这款插件广泛应用于产品展示、图片画廊、内容滑动等场景,通过其强大的API和易于使用的设置,使得在网页上实现动态滚动效果变得轻而易举。 **核心特性** 1. **多设备支持**:Slick插件完全响应式,适应各种屏幕...
对于图表的支持,SlickGrid虽然不直接提供图形绘制,但可以通过与其他JavaScript图表库(如Chart.js或D3.js)结合使用,实现数据可视化。用户可以根据需要将SlickGrid中的数据绑定到这些图表库,创建出各种复杂的...
在实际应用中,以下是一些使用Slick插件创建幻灯片的步骤: 1. **引入依赖**:在HTML文件中,先引入jQuery库,然后引入Slick插件的CSS和JS文件。 2. **初始化Slick**:在JavaScript代码中,选择要应用幻灯片的元素...