scala中sql语句查询结果
时间: 2023-07-02 20:04:42 浏览: 144
在Scala中,可以通过使用Scala语言内置的JDBC或使用Scala提供的第三方库(如Slick)来执行SQL查询。以下是使用JDBC的示例代码:
```scala
import java.sql.{Connection, DriverManager, ResultSet}
val url = "jdbc:mysql://localhost:3306/mydatabase"
val driver = "com.mysql.jdbc.Driver"
val username = "myuser"
val password = "mypassword"
// register driver
Class.forName(driver)
// create connection
val connection: Connection = DriverManager.getConnection(url, username, password)
// create statement
val statement = connection.createStatement()
// execute query
val query = "SELECT * FROM mytable"
val resultSet: ResultSet = statement.executeQuery(query)
// iterate through result set
while (resultSet.next()) {
val id = resultSet.getInt("id")
val name = resultSet.getString("name")
val age = resultSet.getInt("age")
println(s"$id\t$name\t$age")
}
// close connection
resultSet.close()
statement.close()
connection.close()
```
在上面的示例中,我们使用JDBC驱动程序连接到MySQL数据库,并使用`Statement`对象执行查询。结果存储在`ResultSet`对象中,我们可以使用`next()`方法迭代结果集并获取每一行的值。
如果你使用的是Slick库,则可以使用其提供的DSL语言来执行SQL查询。以下是使用Slick的示例代码:
```scala
import slick.jdbc.MySQLProfile.api._
val url = "jdbc:mysql://localhost:3306/mydatabase"
val driver = "com.mysql.jdbc.Driver"
val username = "myuser"
val password = "mypassword"
// create database connection
val db = Database.forURL(url, username, password, driver)
// define table schema
case class MyTable(id: Int, name: String, age: Int)
class MyTableTable(tag: Tag) extends Table[MyTable](tag, "mytable") {
def id = column[Int]("id", O.PrimaryKey)
def name = column[String]("name")
def age = column[Int]("age")
def * = (id, name, age) <> (MyTable.tupled, MyTable.unapply)
}
val myTableQuery = TableQuery[MyTableTable]
// execute query
val query = myTableQuery.result
val result = db.run(query)
// iterate through result set
result.map { rows =>
rows.foreach { row =>
println(s"${row.id}\t${row.name}\t${row.age}")
}
}
// close connection
db.close()
```
在上面的示例中,我们首先定义了表结构,并使用Slick的DSL语言定义了查询。然后,我们使用`db.run()`方法执行查询,并使用`map()`方法迭代结果集。由于Slick使用异步API,所以我们需要在最后关闭数据库连接。
阅读全文