2
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
object TestAppMain {

  def main(args: Array[String]) {

    val url = "jdbc:mysql://localhost/scala"
    val username = "root"
    val password = "abc123"

    // there's probably a better way to do this
    var connection:Connection = null

    try {
      // make the connection
      **Class.forName("com.mysql.jdbc.Driver")**
      connection = DriverManager.getConnection(url, username, password)

      // create the statement, and run the select query
      val statement = connection.createStatement()
      val resultSet = statement.executeQuery("SELECT host, user FROM fra1")
      while ( resultSet.next() ) {
        val host = resultSet.getString("host")
        val user = resultSet.getString("user")
        println("host, user = " + host + ", " + user)
      }
    } catch {
      case e => e.printStackTrace
    }
    **connection.close()**
  }
}

我在“** **”包围的行中收到错误,但在“com.mysql.jdbc.Driver”中收到主要错误,那么如何解决该错误?我有一个名为 scala 的数据库和一个名为 fra1 的表,我创建了一个名为 scala 的数据库并在 mysql 中创建了一个表

mysql> create table fra1(host varchar(64),user varchar(64));
Query OK, 0 rows affected (0.39 sec)

mysql> select* from fra1;
Empty set (0.00 sec)

mysql> insert into fra1 values('rohit1' ,'xyz123');
Query OK, 1 row affected (0.05 sec)

mysql> insert into fra1 values('rohit' ,'abc123');
Query OK, 1 row affected (0.05 sec)

mysql> select* from fra1;
+--------+--------+
| host   | user   |
+--------+--------+
| rohit1 | xyz123 |
| rohit  | abc123 |
+--------+--------+
2 rows in set (0.00 sec)
4

3 回答 3

3

在 jdbc 4.0 中,您不再需要执行 Class.forName。在此处查看 jdbc 手册:

http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

此外,请确保在 Build.scala 或 build.sbt 中声明正确的依赖项:

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.6"
于 2013-10-22T21:03:14.237 回答
3

有三个步骤可以做到这一点。1.在build.sbt中添加库

libraryDependencies ++= Seq (
  "mysql" % "mysql-connector-java" % "5.1.12"
)

2.导入相关库

import java.util. Properties
import java.sql.{Connection, DriverManager, Statement, ResultSet}

3. scala代码连接mysql

val url = "jdbc:mysql://127.0.0.1/clothing"
val username = "root"
val password = "123456"

Class.forName("com.mysql.jdbc.Driver")
val dbc: Connection = DriverManager.getConnection(url, username, password)
val st: Statement = dbc.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
val rs = st.executeQuery("SELECT * from movies LIMIT 10")
val result = new StringBuilder
while (rs.next()) {
  val info = Array(rs.getString("MovieID"), rs.getString("MovieName"), rs.getString("ReleaseYear"))
  result.append(rs.getString("MovieID")).append(",")
  result.append(rs.getString("MovieName")).append(",")
  result.append(rs.getString("ReleaseYear")).append("\n")
}
dbc.close
result.toString
于 2014-05-16T18:44:15.240 回答
1

这段代码对我有用

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

object ConnectDB {
  var connection:Connection = _

  def main(args: Array[String]) {

    val url = "jdbc:mysql://localhost/mysql"
    val driver = "com.mysql.jdbc.Driver"
    val username = "root"
    val password = "root"


    try {
      // make the connection
      Class.forName(driver)
      connection = DriverManager.getConnection(url, username, password)

      // create the statement, and run the select query
      val statement = connection.createStatement()
      val resultSet = statement.executeQuery("SELECT host, user FROM user")
      while ( resultSet.next() ) {
        val host = resultSet.getString("host")
        val user = resultSet.getString("user")
        println("host, user = " + host + ", " + user)
      }
    } catch {
      case e: Exception => e.printStackTrace
    }
    connection.close()
  }
}
于 2017-02-07T07:47:26.647 回答