Он пытался подключиться к более старой версии MySQL («версия», «5.1.73»); когда вы используете новую версию драйвера, вы получаете сообщение об ошибке «com.mysql.cj.jdbc.Driver», даже если вам не нужно указывать, какой из них вы используете:
Загрузка класса
blockquote>com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver '. Драйвер автоматически регистрируется через SPI, и ручная загрузка класса драйвера вообще не нужна.Я изменил объявление использовать версию mysql-connector-java версии 5.1.38, а в коде я сохранил файл com.mysql.jdbc.Driver.
mysql mysql-connector-java 5.1.38 Все началось, когда я увидел Ankit Jain's ответ
Вероятно, причина, по которой неявное преобразование не использовалось во втором примере, заключается в следующем:
// val l: AnyRef = 10L
// error: the result type of an implicit conversion must be more specific than AnyRef.
Этот ответ может объяснить, почему это происходит.
Однако, вы можете переписать свой метод, чтобы заставить его работать, используя неявные доказательства.
def testLong[T](v: T)(implicit ev: T => AnyRef): Unit = {
println(v.getClass)
}
testLong(10L)
// class java.lang.Long
Любопытно, что если вы сделаете метод специфичным только для Long, напечатанный класс изменится.
def testLong(v: Long)(implicit ev: Long => AnyRef): Unit = {
println(v.getClass)
}
testLong(10L)
// long