一、背景

  由于项目需要,需要在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项目 

  

  

  3.2 添加Student类和程序入口

  项目结构如下图所示

  

  其中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

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

四、总结

  以上记录了使用SBT+Scala访问MySQL数据的过程,整个Demo已经上传至github,有需要的园友可以直接fork,谢谢各位园友的观看。  

【知识积累】SBT+Scala+MySQL的Demo的更多相关文章

  1. 数据库相关知识积累(sqlserver、oracle、mysql)

    数据库相关知识积累(sqlserver.oracle.mysql) 1. sqlserver :断开所有连接: (还原数据库) 1.数据库  分离 2. USE master GO ALTER DAT ...

  2. Asp.net MVC知识积累

    一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...

  3. WinRT知识积累1之读xml数据

    前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 ...

  4. Winform开发几个常用的开发经验及知识积累(一)

    本人做Winform开发多年,孜孜不倦,略有小成,其中收集或者自己开发一些常用的东西,基本上在各个项目都能用到的一些开发经验及知识积累,现逐步介绍一些,以飨读者,共同进步. 1.窗口[×]关闭按钮变为 ...

  5. 【Python】 零碎知识积累 II

    [Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...

  6. java jdbc使用SSH隧道连接mysql数据库demo

    java jdbc使用SSH隧道连接mysql数据库demo   本文链接:https://blog.csdn.net/earbao/article/details/50216999   packag ...

  7. mysql知识积累

    验证mysql工作状态 systemctl status mysql.service 启动 sudo systemctl start mysql 停止 service mysql stop 重启mys ...

  8. J2EE 基础知识积累

    1. 面向对象的思维: 1. 有哪些类 那些对象      2. 这些类中,每种类应该具有某种属性和方法      3. 考虑类与类之间应该具有什么样的关系 3. 1. 成员变量可以使用java语言中 ...

  9. 【Python】 零碎知识积累 I

    大概也是出于初高中时学化学,积累各种反应和物质的习惯,还有大学学各种外语时一看见不认识的词就马上记下来的习惯,形成了一种能记一点是一点的零碎知识记录的癖好.这篇文章就是专门拿来记录这些零碎知识的,没事 ...

随机推荐

  1. SpringMVC 框架的搭建及基本功能的实现

    首先新建一个WEB项目 导入jar包 我们基于Spring mvc框架进行开发,需要依赖一下的spring jar包: spring-aop-4.0.4.RELEASE.jar spring-bean ...

  2. Struts2标签大全

    A:<s:a xhref=""></s:a>-----超链接,类似于html里的<a></a><s:action name=& ...

  3. sql编写将时间转换年月日 时分格式

    SELECT SUBSTRING(CONVERT(varchar(100),时间字段, 22),0,15) AS aa  FROM  表名

  4. 在windows上如何安装python web引擎jinja2

    首先要把你的Python文件夹加到环境变量里头去.假设你的Python文件夹位于C:\Python34,那么你需要打开CMD并输入: SETX PATH "%path%;C:\Python3 ...

  5. ABP理论学习之SignalR集成

    返回总目录 本篇目录 介绍 安装 建立连接 内置功能 你自己的SignaR代码 介绍 Abp.Web.SignalR 使得在基于ABP的应用程序中使用 SignalR相当容易.查看SignalR文档获 ...

  6. 删除Mysql数据表中多余的重复记录的sql语句

    数据表 sniper_tb 中存在主键 id,字段url,现需要在url字段上添加 unique,但由于url存在重复记录,导致添加失败. 如何删除表中多余的url重复记录,仅保持一条? 思路一 将 ...

  7. XCode的个人使用经验

    Xcode是强大的IDE(但个人觉得不如Visual Studio做得好),其强大功能无需本人再赘述,本文也不是一篇“快捷键列表”,因为XCode上的快捷键极其多,而且还有不少是需要同时按下四个按键的 ...

  8. 企业IT管理员IE11升级指南【5】—— 不跟踪(DNT)例外

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  9. 配置apache和nginx的tomcat负载均衡

    概述 本篇文章主要介绍apache和nginx的相关配置,tomcat的相关安装配置我在前面有写过一篇,详细介绍通过两种配置方法配置nginx. tomcat配置参考:http://www.cnblo ...

  10. 在Github上搭建自己的博客(Windows平台)

    折腾了好久,终于在Github上搭建了自己的博客.这里面总结一下过程希望对大家能有所帮助. Github建博优缺点 和 csdn,新浪,网易相比,在Github上可以自己实现功能 和阿里云,VPS相比 ...