Scala and MySQL JDBC Driver

2019-08-10 06:22发布

问题:

I'm currently working on a SBT-based Scala project and I need to use MySQL as database (through Slick 3.0.0 library).

The issue is that I can't connect to the database because of this exception:

> service[ERROR] java.sql.SQLException: No suitable driver
service[ERROR]  at java.sql.DriverManager.getDriver(DriverManager.java:315)
service[ERROR]  at slick.jdbc.DriverBasedJdbcDataSource$class.registerDriver(JdbcDataSource.scala:60)
service[ERROR]  at slick.jdbc.DriverJdbcDataSource.registerDriver(JdbcDataSource.scala:72)
service[ERROR]  at slick.jdbc.DriverJdbcDataSource.<init>(JdbcDataSource.scala:78)
service[ERROR]  at slick.jdbc.JdbcBackend$DatabaseFactoryDef$class.forURL(JdbcBackend.scala:101)
service[ERROR]  at slick.jdbc.JdbcBackend$$anon$3.forURL(JdbcBackend.scala:33)

What I've done so far (see screenshot):

  • I made sure the MySQL server is running.

  • I've added mysql-connector-java dependency the build.sbt file. The jar gets downloaded correctly (see column on the left).

  • I've used this to get a connection to the database:

    val db = Database.forURL(
      "jdbc:mysql/localhost:3306/service",
      "service",
      "service",
      driver="com.mysql.jdbc.Driver"
    ) 
    

Any idea on how to solve this?

Thanks.

回答1:

It should be jdbc:mysql://localhost:3306/service not jdbc:mysql/localhost:3306/service. You are missing a slash and colon after mysql.

Tried on my own project. The error with the wrong jdbc URL gives me same exception as yours. I guess this exception is misleading.