Scala 使用Akka.io从Azure SQL数据库提取数据
目前,我可以使用intelliJ创建会话:Scala 使用Akka.io从Azure SQL数据库提取数据,scala,akka,azure-sql-database,akka-stream,Scala,Akka,Azure Sql Database,Akka Stream,目前,我可以使用intelliJ创建会话: //sqlserver is the name of application.conf {} val databaseConfig = DatabaseConfig.forConfig[JdbcProfile]("sqlserver") implicit val session = SlickSession.forConfig(databaseConfig) 这是配置文件: sqlserver = { profi
//sqlserver is the name of application.conf {}
val databaseConfig = DatabaseConfig.forConfig[JdbcProfile]("sqlserver")
implicit val session = SlickSession.forConfig(databaseConfig)
这是配置文件:
sqlserver = {
profile = "slick.jdbc.SQLServerProfile$"
db {
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
host = <myHostName> e.g. myresource.database.windows.net
port = <myPortNumber> e.g 1433
databaseName = <myDatabaseName>
url = <jdbc:sqlserver:myHostName:port;database=myDatabase>
user = <user>
password = <password>
connectionTimeout = "30 seconds"
}
}
我找不到从Akka.io中使用SQL命令提取任何数据的方法示例。最近的一个位于此链接:
[Akka.io Slink JDBC][1]
在这一点上,连接没有错误,但我仍然缺乏使用查询方法从Azure SQL数据库访问和下载的方法
这个看起来像是在创建自己的向量列表
case class User(id: Int, name: String)
val users = (1 to 42).map(i => User(i, s"Name$i"))
结果:向量(用户(1,名称1),用户(2,名称2),…)
有没有一种方法可以从Azure SQL server提取数据?
[1] :如果要将数据从SQL Server获取到Akka流中,则需要
源,而不是接收器(用于将数据从Akka写入数据库)
因为Alpakka将JDBC集成推迟到库中,所以可能值得阅读该库
从文档中,您将需要以下内容:
import slick.jdbc.GetResult
import session.profile.api._
case class User(id: Int, name: String)
// Define how to transform result rows (each row being a PositionedResult)
// into Users. See https://scala-slick.org/doc/3.3.2/sql.html
implicit val getUserFromResult = GetResult(r => User(r.nextInt, r.nextString))
val gotAllUsers: Future[Done] =
Slick.source(sql"SELECT id, name FROM table".as[User])
.log("user")
.runWith(Sink.ignore)
// Wait for the query to complete before exiting, only useful for this example.
Await.result(gotAllUsers, Duration.Inf)
import slick.jdbc.GetResult
import session.profile.api._
case class User(id: Int, name: String)
// Define how to transform result rows (each row being a PositionedResult)
// into Users. See https://scala-slick.org/doc/3.3.2/sql.html
implicit val getUserFromResult = GetResult(r => User(r.nextInt, r.nextString))
val gotAllUsers: Future[Done] =
Slick.source(sql"SELECT id, name FROM table".as[User])
.log("user")
.runWith(Sink.ignore)
// Wait for the query to complete before exiting, only useful for this example.
Await.result(gotAllUsers, Duration.Inf)