2013-10-22 96 views
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的主要誤差包圍的線條營造階和MySQL之間的連接.Driver「 那麼如何解決這個錯誤? 我有命名爲Scala和一個名爲FRA1 表的數據庫,我已經創建了一個名爲斯卡拉數據庫和MySQL中創建表也如何使用JDBC

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) 
+0

你使用'sb t'? – Faiz

回答

3

有三個步驟來做到這一點。在build.sbt 1.添加庫

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 
0

此代碼對我的作品

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() 
    } 
}