我正在使用Spray with Slick。喷雾实际上非常容易使用,Slick也是如此。然而,臭名昭着的Slick方式连接数据库就像:
Database.forURL("jdbc:mysql://localhost:3306/SprayBlog?characterEncoding=UTF-8", user="xxxx", password="xxx", driver = "com.mysql.jdbc.Driver") withSession {
implicit session =>
(Article.articles.ddl ++ User.users.ddl).create
}
每次进行数据库连接时,我都讨厌打字。我之前使用过Play-Slick框架,Play有application.conf
,我可以使用它来存储我的数据库连接地址,用户名和密码。我不知道这是否属实,但是人们不应该将他们的数据库信息存储在加密文件上,我可能错了,但我觉得conf
被阻止从外部访问并加密。
那么有没有办法让我更轻松地调用数据库操作?如果我想将信息放在conf
中,我该如何访问它?
答案 0 :(得分:2)
使用Slick 2.1.0,您可以使用Database.forConfig()
。
在application.conf中:
db {
url = "jdbc:mysql://localhost/DatabaseName"
driver = "com.mysql.jdbc.Driver"
user = "root"
password = ""
}
在您的数据库访问代码中:
import scala.slick.driver.MySQLDriver.simple._
import models.Item
import tables.ItemTable
class ItemService {
val items = TableQuery[ItemTable]
def all: List[Item] = Database.forConfig("db") withSession { implicit session: Session =>
items.list
}
}
答案 1 :(得分:0)
将您的数据库存储在val中,或者编写一个def,其中包含您认为重复的内容。 withSession适用于连接范围。我不知道喷涂conf文件,但他们可能使用Typesafe配置,这是一个允许读取文件的库。 Spray可能还通过api暴露其配置。