本文来自 http://fair-jm.iteye.com 转截请注明出处
slick是什么具体就不多说了 官网都有介绍 自己跟着文档学学就记记笔记 方便以后复习了~~
这边从sbt开始 到eclipse
先在目录中建立sbt项目的基本结构(也可以用sbt的插件)
手动的话 基本目录应该是这样的:
build.sbt lib project build.properties build.scala plugin.sbt project src main java resources scala test java resources scala target |
以上是完整的目录
当然也可以使用插件(比如sbteclipse-plugin) 全局插件的配置只需在你当前用户家目录(win下也一样)的.sbt的0.13(具体版本) 如果没有plugins文件夹就新建一个 然后放入plugin.sbt 里面填写插件 例如:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")
就可以使用了(在sbt中运行eclipse 或eclipse with-source=true 可以将sbt项目转化为eclipse也可以使用的项目)
项目结构如下:
在build,sbt中添加依赖 内容如下:
name := "sclick_test" version := "1.0-SNAPSHOT" scalacOptions ++= Seq("-unchecked", "-deprecation") libraryDependencies ++= Seq( "mysql" % "mysql-connector-java" % "5.1.28", "com.typesafe.slick" %% "slick" % "2.0.0", "org.slf4j" % "slf4j-nop" % "1.6.4" )
这边使用mysql 就把mysql的包先导入 然后是slick的包和slf4j
然后是先得到实体 如果是已经有数据库了 那么直接用他的代码生成工具就可以了 格式如下:
Array(slickDriver, jdbcDriver, url, outputFolder, pkg)
)
这边给出我用mysql的代码:
package slick_test object model { def main(args:Array[String])={ scala.slick.model.codegen.SourceCodeGenerator.main( Array[String]("scala.slick.driver.MySQLDriver", "com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/test", "G:/scala_workspace/slick_test/src/main/scala", "slick_test") ) } }
会生成一个Tables的scala代码文件 可以直接使用
使用如下: 这里只做一个insert的代码(因为其他我还没看 没学嘛 QAQ)
def main(args:Array[String]):Unit={ Database.forURL(url="jdbc:mysql://localhost:3306/test", user="root", password="", driver="com.mysql.jdbc.Driver") withSession { implicit session => Tables.Person += new Tables.PersonRow(2,Some(23),Some("cc@test.com"),Some("cc"),Some("1111")) } }
用Some是因为数据库中的属性是nullable的 ID如果是自动增长的 那么随便写(因为最后的语句中是不会insert id的 交给数据库自己处理) +=和insert方法一样
然后自己写实体也是可以的 但是挺麻烦的 还是用工具生成下比较方便
class Persons(tag: Tag) extends Table[(Int, Option[Int], Option[String], Option[String], Option[String])](tag, "person") { val id: Column[Int] = column[Int]("id", O.AutoInc, O.PrimaryKey) /** Database column age */ val age: Column[Option[Int]] = column[Option[Int]]("age") /** Database column email */ val email: Column[Option[String]] = column[Option[String]]("email") /** Database column name */ val name: Column[Option[String]] = column[Option[String]]("name") /** Database column phone */ val phone: Column[Option[String]] = column[Option[String]]("phone") // Every table needs a * projection with the same type as the table's type parameter def * = (id, age, email, name, phone) } val persons = TableQuery[Persons]
这边没有用PersonRow(工具会自动生成的) 直接用tuple就好了
进行插入操作和以上是一样的:
persons insert (2,Some(21),Some("cc@test.com"),Some("cc"),Some("1111"))
最后注意一点 关于导包 进行+=操作需要导入相应数据库的slick的驱动包
笔者最开始用scala.slick.driver.JdbcDriver包爆出一堆异常(用代码生成器时Int/Integer找不到 手写时提示SQL语法有错误) 用什么数据库就导入相应slick的驱动包 切记
完整代码:
package slick_test //import scala.slick.jdbc.{GetResult, StaticQuery => Q} import scala.slick.jdbc.JdbcBackend.Database //import Q.interpolation import scala.slick.driver.MySQLDriver.simple._ object jdbc { def main(args:Array[String]):Unit={ Database.forURL(url="jdbc:mysql://localhost:3306/test", user="root", password="", driver="com.mysql.jdbc.Driver") withSession { implicit session => persons insert (2,Some(21),Some("cc@test.com"),Some("cc"),Some("1111")) Tables.Person += new Tables.PersonRow(2,Some(23),Some("cc@test.com"),Some("cc"),Some("1111")) } } class Persons(tag: Tag) extends Table[(Int, Option[Int], Option[String], Option[String], Option[String])](tag, "person") { val id: Column[Int] = column[Int]("id", O.AutoInc, O.PrimaryKey) /** Database column age */ val age: Column[Option[Int]] = column[Option[Int]]("age") /** Database column email */ val email: Column[Option[String]] = column[Option[String]]("email") /** Database column name */ val name: Column[Option[String]] = column[Option[String]]("name") /** Database column phone */ val phone: Column[Option[String]] = column[Option[String]]("phone") // Every table needs a * projection with the same type as the table's type parameter def * = (id, age, email, name, phone) } val persons = TableQuery[Persons] }
相关推荐
1. **多设备支持**:Slick插件完全响应式,适应各种屏幕尺寸,包括桌面、平板和手机,确保在任何设备上都能提供优秀的用户体验。 2. **自定义选项**:提供大量可配置参数,如无限循环、分页导航、箭头导航、自动...
2. **解压缩文件**:使用命令行将下载的`slickedit.bz2`文件解压到`/usr/local`目录下: ``` sudo tar xvf slickedit.bz2 -C /usr/local/ ``` 3. **配置环境变量**:为了能够在任何目录下直接运行SlickEdit,...
用户可以期待通过这些教程逐步学习如何使用Slick2D来构建2D游戏。theNewBoston以其易于理解、步骤清晰的教学风格闻名,所以这将是一个适合初学者入门的资源。 【标签】: "Java" 标签"Java"表明这个教程是针对Java...
2. **动画效果**:通过设置`slick`的选项,可以实现放大缩小的效果。例如,使用`autoplay`和`autoplaySpeed`实现自动切换,`slideFade`启用淡入淡出动画。 3. **自定义样式**:在CSS中,你可以通过添加新的类或覆盖...
### 2. DOM操作 jQuery提供了丰富的DOM操作方法,如`$(selector).html()`用于获取或设置元素的HTML内容,`$(selector).append()`和`.prepend()`用于在元素内部添加内容,而`$(selector).remove()`则用于移除元素。 ...
- **选择器引擎**:MooTools内置了高效的Slick选择器引擎,支持CSS1到CSS3的选择器,如`$$('div.box')`获取所有类名为box的div元素。 - **元素操作**:提供了一系列方便的DOM操作方法,如`Element.append()`、`...
在提供的参考文件`jQuery and jQuery UI Reference 1[1].2.chm`中,你可以找到详细的API文档和使用示例。 ### 学习资源 - 官方文档:https://api.jquery.com/ - jQuery UI官方文档:https://api.jqueryui.com/ - ...
图形渲染:使用 Slick2D 库进行图形渲染。 网络通信:使用 UDP 套接字进行网络通信,实现多人游戏。 项目成果展示 单人游戏:展示单人游戏的界面和功能。 多人游戏:展示多人游戏的界面和功能。 用户控制:展示用户...
艾玛克样板这是前端开发的框架。 这包括支持 , 模式库(由提供支持),以及前端构建(由供电)。...) 尽管我们鼓励您阅读,但其中一些要点是使用使用 使用笔记一些组件是从版本3继承而来的,但是
2. **阅读理解 (Reading Comprehension)**:占30%,复习内容同样来自1、2、3、5、9单元的阅读文章以及额外的IT英语阅读材料。这需要学生能读懂与计算机科学相关的技术文章,理解其中的概念、原理和技术细节。 3. **...
#Apply this templateg8 mhamrah/sbt #Also features a template for Spray-Routing appsg8 mhamrah/sbt -b spray#And for Spark Appsg8 mhamrah/sbt -b spark笔记Go风格的目录布局合并的 build.sbt 文件:包括 ...
虽然这个项目没有明确提及使用jQuery插件,但实现类似功能时,开发者可能会利用现有的jQuery插件,如Slick、FlexSlider或 bxSlider,它们提供了现成的幻灯片解决方案,只需简单配置即可使用。如果项目没有使用插件...
4. **游戏框架**:使用Java进行游戏开发时,常常会用到游戏框架,如LibGDX或Slick2D。这些框架简化了图形渲染、输入处理和音频播放等任务。教程可能会引导学习者如何安装和使用这些框架。 5. **MOD API**:如果教程...
1. 项目源代码:可能包含用Java编写的类、方法和其他游戏逻辑。 2. 资源文件:如图像、音频、纹理等,用于构建游戏的视觉和听觉效果。 3. 配置文件:可能包含了游戏设置、玩家选项或其他定制化的数据。 4. 构建脚本...
3. **jQuery插件**:虽然可以纯用jQuery原生API实现幻灯片效果,但为了提高开发效率和代码的可复用性,开发者通常会选择使用现有的jQuery插件,如Slick、Bootstrap Carousel等。这些插件已经预设了丰富的样式和功能...
这时,可以考虑使用现成的jQuery插件,如Slick、Swiper等。这些插件提供了许多预设的选项和回调函数,方便开发者进行自定义配置。 总结,jQuery卡片式焦点图切换动画特效通过结合HTML、CSS和jQuery,实现了动态的...
在本项目中,虽然未明确提及插件,但开发者也可以选择使用现有的jQuery插件,如`jQuery.cycle2`或`Slick Slider`,来快速实现广告轮播功能,这些插件已经封装好了许多常见需求,使用起来更为便捷。 总结来说,本...
虽然在这个压缩包中没有明确提及插件,但实现轮播切换的代码很可能是基于某个或多个jQuery插件,如Slick、Carousel等。这些插件通常包含完整的轮播功能,包括自动播放、导航箭头、分页指示器等。 接下来,我们关注...
尽管压缩包未明确提及具体的jQuery插件,但通常在制作复杂特效时,开发者会使用预设的插件,如`jQuery.cycle2`或`Slick`等,来快速构建幻灯片组件。这些插件通常封装了复杂的逻辑,提供易于使用的API,使得开发者...