Play2.7+Slick3.0集成Postgresql+Mysql实现多数据源 Restful

1.需要的sbt依赖

    "org.scalatestplus.play" %% "scalatestplus-play" % "3.0.0" % Test,
    "mysql" % "mysql-connector-java" % "5.1.47",
    "com.typesafe.play" %% "play-slick" % "3.0.0",
    "com.typesafe.play" %% "play-slick-evolutions" % "3.0.0",
    "org.postgresql" % "postgresql" % "9.4.1212",

注意play slick postgresql的版本

2.在application.conf配置多数据源

其中default数据源使用mysql,postgresqldb(这是命名,随便写,和后面注入时一致即可)使用的是postgresql 10

slick.dbs.default {
  driver = "slick.driver.MySQLDriver$"
  db.driver = com.mysql.jdbc.Driver
  db.url = "jdbc:mysql://localhost/playtest"
  db.user = "root"
  db.password = "root"
  db.logSql = true
}
#登录 psql -h localhost -U postgres -d postgres -p 5432;
#查看客户端编码 show client_encoding;
#修改编码 set client_encoding to 'utf8';
slick.dbs.postgresqldb {
  driver = "slick.driver.PostgresDriver$"
  db.driver = org.postgresql.Driver
  db.url = "jdbc:postgresql://127.0.0.1:5432/playtest"
  db.user = "postgres"
  db.password = "root"
  db.logSql = true
}

default是默认的数据源,配置地点如下

play.db {
  # The combination of these two settings results in "db.default" as the
  # default JDBC pool:
  config = "db"
  default = "default"

  # Play uses HikariCP as the default connection pool.  You can override
  # settings by changing the prototype:
  prototype {
    # Sets a fixed JDBC connection pool size of 50
    #hikaricp.minimumIdle = 50
    #hikaricp.maximumPoolSize = 50
  }
}

因为config和default的默认值就是db、default,所以不需要改这里,可以忽略。

PS:如果是是slick2.x可以通过下面方式配置,slick3.0不需要考虑下面的,忽略即可。

db {
  default.driver = com.mysql.jdbc.Driver
  default.url = "jdbc:mysql://localhost/playtest"
  default.username = "root"
  default.password = "root"
  default.logSql = true
}

当然也可以写成db.default.driver=xxx  这里default同样是表示默认的数据源,此时需要的在sbt加上jdbc依赖,通过注入

db: Database来使用,如果不是default,则需要加上名字如:@NamedDatabase("yourdatebase") db: Database

3.在DAO注入并引用多数据源

1)mysql

package dao

import javax.inject.Inject
import models.User
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
import slick.jdbc.JdbcProfile

import scala.concurren
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值