【知识积累】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,谢谢各位园友的观看。  

时间: 2024-10-24 09:43:06

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

python2.7的知识积累

参考http://blog.csdn.net/jcjc918/article/details/9354815 http://blog.sina.com.cn/s/blog_6fb8aa0d0101qtt9.html http://stackoverflow.com/questions/3505831/in-python-how-do-i-convert-a-single-digit-number-into-a-double-digits-string 今天晚上折腾了一下python,主要是去跑通

Intergraph G/Technology平台上的一些知识积累

Intergraph G/Technology平台,一个主要面向管线管理的GIS平台,在国内主要用于电力.电信.煤气等公共服务行业,具体的介绍请百度. 这几年的工作主要是在平台上进行一些二次开发,在 G/Technology上做开发时,需要了解平台的一些运行机制,才能更好地完成工作,同时也才能去解决一些由平台造成的垃圾数据. 虽然在这个平台上也做了多年的开发,但平常工作时,为了能及时地交付功能,在一些地方研究还是不够深入,这次也正好借这个机会好好地整理下. 本系列主要是我在G/Technolog

WinRT知识积累1之读xml数据

前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 步骤:1.在项目中准备一个xml文件.我在项目中建立了一个city.xml,如图: city.xml具体代码如下: <?xml version="1.0" encoding="utf-8" ?> <China> <city> <

android webview知识积累

1.如果访问的页面中有Javascript,则webview必须设置支持Javascript. mWebView.getSettings().setJavaScriptEnabled(true); 2.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象. mWebView.setWebViewClient(new WebViewClient(){ public bool

ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)

原文:ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF) 先上一段代码,了解一下 .NET Core 配置数据的结构. 新建一个 控制台项目,添加一个文件 json.json ,文件内容如下: { "country": "cn", "person": { "id": 1, "address": { "addName": "chengdu"

mysql运维之---知识积累

一.mysql sql处理业务类 1.1.通过生日计算周岁 select date_format(from_days(to_days(now())-to_days('1788-11-26')),'%Y')+0; 1.2.mysqladmin命令修改密码,-h指定数据库服务器的ip # /usr/mysql/bin/mysqladmin -h 192.168.0.%  -uyangsq -p password Enter password: /usr/mysql/bin/mysqladmin: c

android&quot;百码&quot;2——基础小知识积累(逐步完善)2015-06-15

自己对java基础知识.语法.基本数据类型等方面都不是很掌握,经常在一些很基础的问题上折腾好一段时间,最近在执行“百码”计划,因此专门写一篇博文用于记录日常编程过程中遇到的一些薄弱知识点,逐个积累起来,填补自己的薄弱环节. 1.Spinner设置默认值 在对spinner设置完数据适配器后,系统默认将数据源的第一个数据作为spinner默认值,很多时候我们需要自定义这个默认值,或者说我们需要通过代码的方式去控制spinner当前值,这时候就需要用到setSelection()函数,使用代码如下:

传播知识,分享快乐--MySQL数据库开发与优化视频

?? 今天是9月11日,是一个值得纪念的日子,为无辜逝去的生命祈祷! 今年自开博以来整整六周年了,在广大网友的鼎力支持与协助下,博客写满500篇了. 为答谢广大网友的厚爱,本着传播知识,分享的理念,录制了MySQL开发与性能优化视频. 因时间关系,视频还未彻底完成,因此后续将继续完成全部录制工作. 以下为分享链接,欢迎大家拍砖及吐槽. http://pan.baidu.com/s/1pJux9eN 版权声明:本文为博主原创文章,未经博主允许不得转载.

工作总结篇:常用知识积累第一波

前言:最近两三周积累一些常用的知识点,主要是平常工作中经常用的,共享一下. postgre数据库导入导出 1.首先通过环境变量将postgre的bin路径配置到path下面 2.pg_dump -U postgres starxxxx > starxxxx.sql 3.psql -U postgres starxxxx < starxxxx.sql 通过以上命令可以进行数据库包括序列的简单导入和导出 mysql开启root远程权限 grant all privileges on *.* to