scalikejdbc 学习笔记(1)

build.sbt:

import sbt._
import Process._
import Keys._

EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource

lazy val commonSettings = Seq(
name := "ScalaLearning",
version := "1.0",
scalaVersion := "2.10.6"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
	libraryDependencies ++= Seq(
	  "org.scalikejdbc" %% "scalikejdbc"       % "3.0.0",
	  "mysql" % "mysql-connector-java" % "5.1.40",
	  "ch.qos.logback"  %  "logback-classic"   % "1.2.3",
	  "org.scalariform" %% "scalariform" % "0.1.8"

	)
  )
import scalikejdbc._ 

object SimpleDemo {
  def main(args: Array[String]): Unit = {

    Class.forName("com.mysql.jdbc.Driver")

    val url = "jdbc:mysql://192.168.1.151:3306/scalalearning?useUnicode=true&characterEncoding=UTF8"
    val userName = "root"
    val password = "12345"

    val settings = ConnectionPoolSettings(
      initialSize = 5,
      maxSize = 20,
      connectionTimeoutMillis = 3000L,
      validationQuery = "select 1 from dual")

    ConnectionPool.singleton(url, userName, password, settings)

    case class User(id: Int, name: String, age: Int)

    val allColumns = (rs: WrappedResultSet) => User(
      id = rs.int("id"),
      name = rs.string("name"),
      age = rs.int("age"))

    val users: List[User] = DB readOnly { implicit session =>
      SQL("select * from user limit 10").map(allColumns).list.apply()
    }

    for(user <- users) {
      println(user.id + "," + user.name + "," + user.age)
    }

  }
}

运行结果:

  [SQL Execution]
   select * from user limit 10; (2 ms)

  [Stack Trace]
    ...
    com.citi.scalikejdbc.SimpleDemo$$anonfun$2.apply(SimpleDemo.scala:29)
    com.citi.scalikejdbc.SimpleDemo$$anonfun$2.apply(SimpleDemo.scala:28)
    scalikejdbc.DBConnection$class.readOnly(DBConnection.scala:202)
    scalikejdbc.DB.readOnly(DB.scala:60)
    scalikejdbc.DB$$anonfun$readOnly$1.apply(DB.scala:175)
    scalikejdbc.DB$$anonfun$readOnly$1.apply(DB.scala:174)
    scalikejdbc.LoanPattern$class.using(LoanPattern.scala:18)
    scalikejdbc.DB$.using(DB.scala:140)
    scalikejdbc.DB$.readOnly(DB.scala:174)
    com.citi.scalikejdbc.SimpleDemo$.main(SimpleDemo.scala:28)
    com.citi.scalikejdbc.SimpleDemo.main(SimpleDemo.scala)
    ...

1,sky,20
2,bill,30
时间: 2024-10-30 07:49:08

scalikejdbc 学习笔记(1)的相关文章

scalikejdbc 学习笔记(3)

重用connection: package com.citi.scalikejdbc import scalikejdbc._ import scalikejdbc.config._ object ConnReuse { def main(args: Array[String]): Unit = { DBsWithEnv("dev").setupAll() case class User(id: Int, name: String, age: Int) val allColumns =

scalikejdbc 学习笔记(2)

使用scalikejdbc config (src\main\resources) # MySQL(dev) dev.db.default.driver="com.mysql.jdbc.Driver" dev.db.default.url="jdbc:mysql://192.168.1.151:3306/scalalearning?useUnicode=true&characterEncoding=UTF8" dev.db.default.user=&quo

scalikejdbc 学习笔记(4)

Batch 操作 import scalikejdbc._ import scalikejdbc.config._ object BatchOperation { def main(args: Array[String]): Unit = { DBsWithEnv("dev").setupAll() case class User(id: Int, name: String, age: Int) val ls = List[User]( User(5, "aa",

scalikejdbc 学习笔记(5)

常用增删改查操作: import scalikejdbc._ import scalikejdbc.config._ object CommonOperation { def main(args: Array[String]): Unit = { DBsWithEnv("dev").setupAll() case class Emp(id: Int, name: String) DB autoCommit { implicit session => sql"create

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件