scala实现mysql动态写入操作
时间: 2023-10-23 12:17:23 浏览: 55
在 Scala 中,我们可以使用 JDBC API 来实现与 MySQL 数据库的交互。下面是一个示例代码,演示如何动态地向 MySQL 数据库中写入数据:
```scala
import java.sql.{Connection, DriverManager, PreparedStatement}
object MysqlWriter {
def main(args: Array[String]): Unit = {
val url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"
val username = "root"
val password = "password"
var conn: Connection = null
var pstmt: PreparedStatement = null
try {
Class.forName("com.mysql.cj.jdbc.Driver")
conn = DriverManager.getConnection(url, username, password)
conn.setAutoCommit(false)
val sql = "INSERT INTO user(name, age) VALUES(?, ?)"
pstmt = conn.prepareStatement(sql)
// 动态写入数据
pstmt.setString(1, "Alice")
pstmt.setInt(2, 20)
pstmt.executeUpdate()
pstmt.setString(1, "Bob")
pstmt.setInt(2, 25)
pstmt.executeUpdate()
pstmt.setString(1, "Charlie")
pstmt.setInt(2, 30)
pstmt.executeUpdate()
pstmt.setString(1, "David")
pstmt.setInt(2, 35)
pstmt.executeUpdate()
conn.commit()
} catch {
case e: Exception =>
e.printStackTrace()
if (conn != null) {
conn.rollback()
}
} finally {
pstmt.close()
conn.close()
}
}
}
```
这段代码使用了 JDBC API,首先通过 `DriverManager` 获取数据库连接,然后创建一个 `PreparedStatement`,利用 `setString` 和 `setInt` 方法动态写入数据,并调用 `executeUpdate` 方法将数据写入到数据库中。最后,使用 `commit` 方法提交事务,或者 `rollback` 方法回滚事务。
需要注意的是,在 `try` 块中的代码执行完毕后,需要关闭 `PreparedStatement` 和 `Connection` 对象,以释放资源。同时,在发生异常时,需要回滚事务。