一、背景

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

    RowsVersion就是timestamp   丢失更新的解决方法      丢失更新概念:当用户同时修改一行数据,他们先读取数据,放在前端进行修改,当修改后,再提交数据,这样最后提交的数据会覆盖先 ...

  2. Struts 2的数据校验

    既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢? 就让我带着大家一起来走进Struts 2的数据校验吧. 首先我们会想到在Stuts 2的登录案例中我们定义了一个Act ...

  3. 订单支付成功后存储过程 - MYSQL

    BEGIN SET @userId = (SELECT user_id FROM t_shoporder WHERE id = orderId); /*修改订单状态,改成已支付*/ ,update_t ...

  4. listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠

    原文链接:http://blog.csdn.net/duguju/article/details/49538341 有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一 ...

  5. SQLServer存储过程事务用法

    更多资源:http://denghejun.github.io IF object_id('InsertAntennaProcedure') IS NOT NULL DROP PROCEDURE In ...

  6. ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug

    Microsoft最近发布了ASP.NET Identity 2,该版本支持双重认证.帐号锁定以及防伪印章功能,还增强了用户帐号和索引.此外新版本还包含一个改进的密码验证器并修复了一些bug. 借助于 ...

  7. JavaScript多文件下载

    对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...

  8. TODO:小程序的春天你想做什么

    TODO:小程序的春天你想做什么 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 初步了解小程序的特点 导航明确,来去自如 统一稳定, 视觉规范 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (7) -----第二章 实体数据建模基础之拆分实体到多表以及拆分表到多实体

    2-6 拆分实体到多表 问题 你有两张或是更多的表,他们共享一样的主键,你想将他们映射到一个单独的实体. 解决方案 让我们用图2-15所示的两张表来演示这种情况. 图 2-15,两张表,Prodeuc ...

  10. Java 的设计模式之一装饰者模式

    刚开始接触装饰者的设计模式,感觉挺难理解的,不够后来花了一个晚上的时间,终于有头绪了 装饰者设计模式:如果想对已经存在的对象进行装饰,那么就定义一个类,在类中对已经有的对象进行功能的增强或添加另外的行 ...