Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
Scala Shell Batchfile
Pull request Compare This branch is 35 commits behind scalikejdbc:master.

Merge pull request #417 from scalikejdbc/feature/column_names_use_field

Automatically building column names by using macro
latest commit 3b56f807b3
@seratch authored
Failed to load latest commit information.
notes version 2.2.6
project Merge pull request #415 from tkawachi/paren
sandbox update sandbox scalikejdbc version
scalikejdbc-cli update scalikejdbc-cli setup script
scalikejdbc-config Remove copyright from source code
scalikejdbc-core Add SQLSyntax#roundBracket
scalikejdbc-interpolation-macro Remove copyright from source code
scalikejdbc-interpolation Added ConditionSQLBuilder#roundBracket()
scalikejdbc-jsr310 Remove scalag plugin
scalikejdbc-library Remove copyright from source code
scalikejdbc-mapper-generator-core remove trailing space
scalikejdbc-mapper-generator Remove copyright from source code
scalikejdbc-syntax-support-macro renamed
scalikejdbc-test Remove copyright from source code
scripts Scala 2.10.5
tools-support/intellij/templates scalikejdbc.SQLInterpolation is deprecated
.gitignore Added templates for Intellij IDEA
.travis.yml should not execute "git add" multiple times
CONTRIBUTING.md fix JDBC setting properties files path
LICENSE.txt Update copyright
logo.png Updated logo
readme.md Remove copyright from source code
team-rules.md version 2.2.4
travis.sh should not execute "git add" multiple times
travis_before.sh should not execute "git add" multiple times

readme.md

ScalikeJDBC

Just write SQL and get things done!

ScalikeJDBC is a tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.

ScalikeJDBC is a practical and production-ready one. Use this library for your real projects.

http://scalikejdbc.org/

Build Status

Gitter Chat for Casual Q&A

  • English: Gitter
  • 日本語 (Japanese): Gitter

Getting Started

All you need to do is just adding ScalikeJDBC, JDBC driver & slf4j implementation.

libraryDependencies ++= Seq(
  "org.scalikejdbc" %% "scalikejdbc"        % "2.2.+",
  "com.h2database"  %  "h2"                 % "1.4.+",
  "ch.qos.logback"  %  "logback-classic"    % "1.1.+"
)

If you're a Play2 user, take a look at play-support project, too.

https://github.com/scalikejdbc/scalikejdbc-play-support

First example

Put above dependencies into your build.sbt and run sbt console now.

//import scalikejdbc._, SQLInterpolation._
import scalikejdbc._

// initialize JDBC driver & connection pool
Class.forName("org.h2.Driver")
ConnectionPool.singleton("jdbc:h2:mem:hello", "user", "pass")

// ad-hoc session provider on the REPL
implicit val session = AutoSession

// table creation, you can run DDL by using #execute as same as JDBC
sql"""
create table members (
  id serial not null primary key,
  name varchar(64),
  created_at timestamp not null
)
""".execute.apply()

// insert initial data
Seq("Alice", "Bob", "Chris") foreach { name =>
  sql"insert into members (name, created_at) values (${name}, current_timestamp)".update.apply()
}

// for now, retrieves all data as Map value
val entities: List[Map[String, Any]] = sql"select * from members".map(_.toMap).list.apply()

// defines entity object and extractor
import org.joda.time._
case class Member(id: Long, name: Option[String], createdAt: DateTime)
object Member extends SQLSyntaxSupport[Member] {
  override val tableName = "members"
  def apply(rs: WrappedResultSet): Member = new Member(
    rs.long("id"), rs.stringOpt("name"), rs.jodaDateTime("created_at"))
}

// find all members
val members: List[Member] = sql"select * from members".map(rs => Member(rs)).list.apply()

How did it go? If you'd like to know more details or practical examples, see documentation.

http://scalikejdbc.org/

License

Published source code and binary files have the following copyright:

Copyright scalikejdbc.org
Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.html
Something went wrong with that request. Please try again.