【知识积累】SBT+Scala+MySQL的Demo

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:  由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库。由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累。

一、背景


  由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库。由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累。


二、系统环境


  Scala、Sbt、IDE的版本分别如下

  Scala版本     ==> 2.11.8

  Sbt版本       ==> 0.13.8

  Idea Intellij版本   ==> 2016.2.2


三、步骤


  3.1 新建SBT项目 

616953-20160828105730494-881123320.png

616953-20160828105756402-1127423413.png

3.2 添加Student类和程序入口


  项目结构如下图所示

616953-20160828105857844-810959389.png

 其中Student代码如下

package com.hust.grid.leesf.domain
/**
  * Created by LEESF on 2016/8/28.
  */
class Student(val id: Int, val name: String, val age: Int) {
  override def toString = "id = " + id + ", name = " + name + ", age = " + age
}

  MySQLDemo代码如下

package com.hust.grid.leesf.entrance
import java.sql.{Connection, DriverManager, SQLException}
import com.hust.grid.leesf.domain.Student
/**
  * Created by LEESF on 2016/8/28.
  */
object MySQLDemo {
  def main(args: Array[String]): Unit = {
    val url = "jdbc:mysql://localhost:3306/test?user=root&useUnicode=true&characterEncoding=utf-8"
    var conn: Connection = null
    try {
      // load mysql driver
      classOf[com.mysql.jdbc.Driver]
      conn = DriverManager.getConnection(url)
      val stmt = conn.createStatement
      val sql = "select * from student"
      val rs = stmt.executeQuery(sql)
      while (rs.next) {
        println(new Student(rs.getInt(1), rs.getString(2), rs.getInt(3)))
      }
    } catch {
      case e: SQLException => e.printStackTrace
      case e: Exception => e.printStackTrace
    } finally {
      if (conn != null) {
        conn.close
      }
    }
  }
}

 build.sbt代码如下

name := "MySQLDemo"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.6"

3.3 新建Student表


  选定test数据库


  执行SQL脚本如下

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` tinyint(2) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

插入记录脚本如下

insert into student(name, age) values("leesf", 24);
insert into student(name, age) values("dyd", 24);

  3.4 执行程序


  执行MySQLDemo


  结果如下 

id = 1, name = leesf, age = 24
id = 2, name = dyd, age = 24

说明:以上结果表明已经成功访问数据库,并取得其中的数据。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
分布式计算 Java Shell
安装SBT环境运行Scala项目
安装SBT环境运行Scala项目
567 0
安装SBT环境运行Scala项目
|
22天前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
44 3
|
5月前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之下载了mysql的cdc的demo,在本地调试时,报错:找不到这个包,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
167 0
|
关系型数据库 MySQL 数据库
Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试
之前特定的mysql版本msvc版本已经调通了,但是为了更好的跨平台,所以选择用mingw32版本,于是需要编译mysql驱动的mingw32版本的驱动库,以便提供给qt连接mysql使用。
Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试
|
Java 关系型数据库 MySQL
【Java】Java连接Mysql数据库的demo示例
【Java】Java连接Mysql数据库的demo示例
256 0
【Java】Java连接Mysql数据库的demo示例
|
关系型数据库 MySQL 数据库连接
Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试
mysql驱动版本msvc2015x32版本调好, mysql的mingw32版本的驱动上一个版本编译并测试好,有些三方库最低支持vs2017,所以只能使用msvc2017x64,基于Qt5.9.3,于是本篇编译mysql驱动的msvc2017x64版本,满足当前的特定需求,这次过程有点费劲,可能是Qt的版本低于Qt5.12,继续无保留分享出来。   本篇主要描述Qt5.9.3 msvc2017x64 + mysql8.0.16的驱动编译过程。
|
关系型数据库 MySQL 流计算
(1)通过FlinkSQL将数据写入mysql demo
(1)通过FlinkSQL将数据写入mysql demo。FlinkSQL的出现,极大程度上降低了Flink的编程门槛,更加容易理解和掌握使用。今天将自己的笔记分享出来,希望能帮助在这方面有需要的朋友。 (1)首先引入POM依赖:
(1)通过FlinkSQL将数据写入mysql demo
|
中间件
nodeJS+express+mysql模块封装之服务器渲染小demo
nodeJS+express+mysql模块封装之服务器渲染小demo
nodeJS+express+mysql模块封装之服务器渲染小demo
|
存储 SQL druid
Java——Demo使用GUI并连接数据库实现购买火车票<MySQL>
Java——Demo使用GUI并连接数据库实现购买火车票<MySQL>
315 0
Java——Demo使用GUI并连接数据库实现购买火车票<MySQL>
|
XML JavaScript 数据可视化
免内置mysql和客户端媒体的kbengine demo,kbengine通用版
关键字:kbengine换外部mysql数据源和外部客户端托管地址,kbengine js demo外部托管 黑屏,kbengine外置mysql
278 0
免内置mysql和客户端媒体的kbengine demo,kbengine通用版