【知识积累】SBT+Scala+MySQL的Demo
一、背景
由于项目需要,需要在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的更多相关文章
- 数据库相关知识积累(sqlserver、oracle、mysql)
数据库相关知识积累(sqlserver.oracle.mysql) 1. sqlserver :断开所有连接: (还原数据库) 1.数据库 分离 2. USE master GO ALTER DAT ...
- Asp.net MVC知识积累
一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...
- WinRT知识积累1之读xml数据
前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 ...
- Winform开发几个常用的开发经验及知识积累(一)
本人做Winform开发多年,孜孜不倦,略有小成,其中收集或者自己开发一些常用的东西,基本上在各个项目都能用到的一些开发经验及知识积累,现逐步介绍一些,以飨读者,共同进步. 1.窗口[×]关闭按钮变为 ...
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
- java jdbc使用SSH隧道连接mysql数据库demo
java jdbc使用SSH隧道连接mysql数据库demo 本文链接:https://blog.csdn.net/earbao/article/details/50216999 packag ...
- mysql知识积累
验证mysql工作状态 systemctl status mysql.service 启动 sudo systemctl start mysql 停止 service mysql stop 重启mys ...
- J2EE 基础知识积累
1. 面向对象的思维: 1. 有哪些类 那些对象 2. 这些类中,每种类应该具有某种属性和方法 3. 考虑类与类之间应该具有什么样的关系 3. 1. 成员变量可以使用java语言中 ...
- 【Python】 零碎知识积累 I
大概也是出于初高中时学化学,积累各种反应和物质的习惯,还有大学学各种外语时一看见不认识的词就马上记下来的习惯,形成了一种能记一点是一点的零碎知识记录的癖好.这篇文章就是专门拿来记录这些零碎知识的,没事 ...
随机推荐
- go中安装Beego不成功笔记
在go.Git等等之类的相关软件安装好了之后,便可以安装Beego. 1.开始的时候是由于网络限制,不能访问Github,这个还好说找VPNFQ... 2.之后的问题,在git Bash中输入go g ...
- java的英文词频算法
java实现的英文词频算法,通常是采用单词树来实现的.使用java实现词频统计,为了统计词汇出现频率,最简单的做法是再建立一个map,其中,key是单词,value代表次数.将文章从头读到尾,读到一个 ...
- SQLServer中的数据库备份和还原
更多资源:http://denghejun.github.io 备份 SQLServer中的备份,这里是T-SQL的用法,具体示例代码如下,使用也相对简单,其中TestDatabase 是指所需备份的 ...
- laravel 生成验证码的方法
在Laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha,这个库比较简单,在Laravel中比较常用.下面我们就来介绍下使用细节: 首先, composer.j ...
- Finger Trees: A Simple General-purpose Data Structure
http://staff.city.ac.uk/~ross/papers/FingerTree.html Summary We present 2-3 finger trees, a function ...
- TaintDroid剖析之File & Memiry & Socket级污点传播
TaintDroid剖析之File & Memiry & Socket级污点传播 作者:简行.走位@阿里聚安全 1.涉及到的代码文件 TaintDroid在File, Memory以及 ...
- ASP.Net请求处理机制初步探索之旅 - Part 3 管道
开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest().HttpRuntime.ProcessReq ...
- ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器
一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...
- .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)
上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用.本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式 ...
- ASP.Net MVC3 图片上传详解(form.js,bootstrap)
图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...