16.1. Connecting to MySQL with JDBC
Problem
You want to connect to a MySQL database (or any other database with a JDBC driver) from a Scala application using “plain old JDBC.”
Solution
Use JDBC just like you would in a Java application. Download the MySQL JDBC driver, and then access your database with code like this:
package
tests
import
java.sql.
{
Connection
,
DriverManager
}
object
ScalaJdbcConnectSelect
extends
App
{
// connect to the database named "mysql" on port 8889 of localhost
val
url
=
"jdbc:mysql://localhost:8889/mysql"
val
driver
=
"com.mysql.jdbc.Driver"
val
username
=
"root"
val
password
=
"root"
var
connection
:
Connection
=
_
try
{
Class
.
forName
(
driver
)
connection
=
DriverManager
.
getConnection
(
url
,
username
,
password
)
val
statement
=
connection
.
createStatement
val
rs
=
statement
.
executeQuery
(
"SELECT host, user FROM user"
)
while
(
rs
.
next
)
{
val
host
=
rs
.
getString
(
"host"
)
val
user
=
rs
.
getString
(
"user"
)
println
(
"host = %s, user = %s"
.
format
(
host
,
user
))
}
}
catch
{
case
e
:
Exception
=>
e
.
printStackTrace
}
connection
.
close
}
That code shows how to query a database table named user
in a database named mysql
. That database name and table name are
standard in any MySQL installation.
As shown in the example, the format of the MySQL JDBC URL string is:
jdbc:mysql://HOST:PORT/DATABASE
In this code I have MySQL running on port 8889
on my computer because it’s the default
port when using MAMP, a tool that makes it easy to run MySQL, Apache, and PHP on Mac OS X systems. If you have MySQL ...
Get Scala Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.