Slick2 使用笔记(4) 与playframework交互(不使用插件)

这里简单说下slick2和playframework2在不使用插件情况下的整合 

其实这是种不太好的行为 毕竟让两者分离了..

实际使用还是用连接池比较好...嗯 下次补完 连接池还没配置过

先留个爆栈网的链接:

http://stackoverflow.com/questions/15534777/connection-pooling-in-slick

为了方便还是采取先设计好数据库 然后再使用代码生成器来生成实体的做法

关于代码生成器 看第三篇笔记:

具体的使用代码:

import mysql_sourceGen.MySQLSourceCodeGenerator

object model {
	def main(args:Array[String])={
	  MySQLSourceCodeGenerator.main(
	  Array[String]("scala.slick.driver.MySQLDriver", //slick的驱动 
	                "com.mysql.jdbc.Driver",  //驱动
	                "jdbc:mysql://localhost:3306/wcw_play", //数据库url 
	                """H:\wcw_sql""",  //存放生成实体的位置
	                "models",//包名
	                "root",//数据库用户名
	                "")    //数据库密码
	  )
	}
}

 不用把代码生成器放在项目内 这只是个工具 放在项目外比较好

生成的实体放入项目内

然后配置conf下的application.conf 我们在那里填写数据库的相关属性

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/play_blog"
db.default.user=root
db.default.password=""

 因为是分隔的 所以slick对这些配置是不能像anorm那样直接感知的 

 我们需要写一个专门获取database的工具类让slick能得到连接:

package models

import scala.slick.jdbc.JdbcBackend.Database
import scala.slick.driver.MySQLDriver.simple._

object SlickDB {
   val database = Database.forURL(url = play.api.Play.current.configuration.getString("db.default.url").getOrElse(""),
      user = play.api.Play.current.configuration.getString("db.default.user").getOrElse(""),
      password = play.api.Play.current.configuration.getString("db.default.password").getOrElse(""),
      driver = play.api.Play.current.configuration.getString("db.default.driver").getOrElse(""))
      
}

 注意第二个导入的包和数据库相关 用什么数据库导入相关的slick的包

使用就很简单了 用SlickDB.database.withSession 或withTransaction 都可以

这边的做法不太好...下次试着用插件扩展一下这篇博文 现在内容很少 请见谅~ 

相关推荐