当前位置: 代码迷 >> .NET Framework >> Slick2 使用札记(4) 与playframework交互(不使用插件)
  详细解决方案

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

热度:87   发布时间:2016-05-01 23:35:44.0
Slick2 使用笔记(4) 与playframework交互(不使用插件)

本文来自:fair-jm.iteye.com 转截请注明出处

?

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

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

?

?

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

先留个爆栈网的链接:

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

?

?

?

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

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

http://fair-jm.iteye.com/blog/2064063

具体的使用代码:

import mysql_sourceGen.MySQLSourceCodeGeneratorobject 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.Driverdb.default.url="jdbc:mysql://localhost:3306/play_blog"db.default.user=rootdb.default.password=""

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

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

package modelsimport scala.slick.jdbc.JdbcBackend.Databaseimport 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 都可以

?

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