登录
首页 >  数据库 >  MySQL

ScalikeJDBC连接MySQL

来源:SegmentFault

时间:2023-02-25 10:05:25 136浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《ScalikeJDBC连接MySQL》,就带大家讲解一下MySQL、scala、maven知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

ScalikeJDBC是一个Scala的JDBC框架,官网说easy-to-use and very flexible,易用又灵活~

1、添加依赖

        org.scalikejdbcscalikejdbc_2.113.3.2com.h2databaseh21.4.197ch.qos.logbacklogback-classic1.2.3mysqlmysql-connector-java8.0.15

2、上代码

import scalikejdbc._

object MySQLDAO {

  def main(args: Array[String]): Unit = {
    // initialize JDBC driver & connection pool
    Class.forName("org.h2.Driver")
    ConnectionPool.singleton("jdbc:mysql:///film?characterEncoding=utf8", "root", "root")

    val id = 1
    val name = "复联%"
    val value = sql"""select * from movie where name LIKE $name ORDER BY id DESC """
    println(value)

    // simple example
    val lasts: List[Map[String, Any]] = DB.readOnly { implicit session =>
      sql"""select * from movie where name LIKE $name ORDER BY id DESC """.map(_.toMap()).list.apply()
    }
    println(lasts)
  }
}

3、排错
1)版本

java.lang.NoSuchMethodError: scala.Product.$init$

这种方法找不到的问题通常都是jar包没引对或版本不一致,

pom.xml
中配置的
scalikejdbc_2.11
必须和系统sdk的scala版本一致(也是2.11.x)
2)MySQL时区

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time
zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a
more specifc time zone value if you want to utilize time zone support.

这是因为

mysql-connector-java
的版本是
8.0.15

解决方法(以下几种皆可):
1.要么换成

5.1.x
的版本
2.在cmd mysql客户端输入
set global time_zone = '+8:00';

3.在jdbc的url中加上
serverTimezone=Hongkong
请求参数
这些同样可以解决在IDEA的DataSource配置中连不上MySQL的时候。(08001错误)

clipboard.png

今天关于《ScalikeJDBC连接MySQL》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>