本节主要内容
- Scala Maven工程的创建
- Scala JDBC方式访问MySQL
- Slick简介
- Slick数据库编程实战
- SQL与Slick相互转换
本课程在多数内容是在官方教程上修改而来的,官方给的例子是H2数据库上的,经过本人改造,用在MySQL数据库上,官方教程地址:http://slick.typesafe.com/doc/2.1.0/sql-to-slick.html
1. Scala Maven工程的创建
本节的工程项目采用的是Maven Project,在POM.xml文件中添加下面两个依赖就可以使用scala进行JDBC方式及Slick框架操作MySQL数据库:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
<dependency>
<groupId>com.typesafe.slick</groupId>
<artifactId>slick_2.11</artifactId>
<version>2.1.0</version>
</dependency>
scala IDE for eclipse 中创建scala Maven项目的方式如下:
在Eclispe 中点击” File->new->other”,如下图
输入Maven可以看到Maven Project:
直接next,得到
再点击next,在filter中输入scala得到:
选中,然后next输入相应的groupId等,直接finish即可。创建完项目将上述依赖添加到pom.xml文件当中,这样就完成了scala maven Project的创建。
2. Scala JDBC方式访问MySQL
下面给出的是scala采用JDBC访问MySQL的代码示例
package cn.scala.xtwy.jdbc
import java.sql.{ Connection, DriverManager }
object ScalaJdbcConnectSelect extends App {
// 访问本地MySQL服务器,通过3306端口访问mysql数据库
val url = "jdbc:mysql://localhost:3306/mysql"
//驱动名称
val driver = "com.mysql.jdbc.Driver"
//用户名
val username = "root"
//密码
val password = "123"
//初始化数据连接
var connection: Connection = _
try {
//注册Driver
Class.forName(driver)
//得到连接
connection = DriverManager.getConnection(url, username, password)
val statement = connection.createStatement
//执行查询语句,并返回结果
val rs = statement.executeQuery("SELECT host, user FROM user")
//打印返回结果
while (rs.next) {
val host = rs.getString("host")
val user = rs.getString("user")
println("host = %s, user = %s".format(host, user))
}
} catch {
case e: Exception => e.printStackTrace
}
//关闭连接,释放资源
connection.close
}
3. Slick简介
在前一小节中我们演示了如何通过JDBC进行数据库访问,同样在Scala中也可以利用JAVA中的ORM框架如Hibernate、IBatis等进行数据库的操纵,但它们都是Java风格的数据库操纵方式,Scala语言中也有着自己的ORM框架,目前比较流行的框架包括:
1、Slick (typesafe公司开发)
2、Squeryl
3、Anorm
4、ScalaActiveRecord (基于Squeryl之上)
5、circumflex-orm
6、activate-framework(Scala版的Hibernate)
本节课程要讲的便是Slick框架,它是Scala语言创建者所成立的公司TypeSafe所开发的一个Scala风格的开源数据库操纵框架,它目前支持下面几种主流的数据:
DB2 (via slick-extensions)
Derby/Ja