通过IDEA+Maven+Scala搞定
在pom.xml文件中添加依赖
<dependency>
<groupId>org.scalikejdbc</groupId>
<artifactId>scalikejdbc_2.11</artifactId>
<version>${scalikejdbc.version}</version>
</dependency>
<dependency>
<groupId>org.scalikejdbc</groupId>
<artifactId>scalikejdbc-config_2.11</artifactId>
<version>${scalikejdbc.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.java.version}</version>
</dependency>
<scalikejdbc.version>2.5.2</scalikejdbc.version>
<mysql.java.version>5.1.38</mysql.java.version>
添加并编辑配置文件:(根据个人情况做相应改动)
# JDBC settings
db.default.driver="org.h2.Driver"
db.default.url="jdbc:h2:file:./db/default"
db.default.user="sa"
db.default.password=""
# Connection Pool settings
db.default.poolInitialSize=10
db.default.poolMaxSize=20
db.default.connectionTimeoutMillis=1000
# Connection Pool settings
db.default.poolInitialSize=5
db.default.poolMaxSize=7
db.default.poolConnectionTimeoutMillis=1000
db.default.poolValidationQuery="select 1 as one"
db.default.poolFactoryName="commons-dbcp2"
db.legacy.driver="org.h2.Driver"
db.legacy.url="jdbc:h2:file:./db/db2"
db.legacy.user="foo"
db.legacy.password="bar"
# MySQL example
db.default.driver="com.mysql.jdbc.Driver"
db.default.url="jdbc:mysql://localhost/scalikejdbc"
# PostgreSQL example
db.default.driver="org.postgresql.Driver"
db.default.url="jdbc:postgresql://localhost:5432/scalikejdbc"
导入相关jar包:
import scalikejdbc._
import scalikejdbc.config._
main函数中解析配置文件:
scalikejdbc.config.DBs.setupAll()
然后即可开始数据库操作
package com.ruozedata
import scalikejdbc._
import scalikejdbc.config._
case class User(id: Int,name: String, age: Int)
object ScalalikeJdbc {
def main(args: Array[String]): Unit = {
scalikejdbc.config.DBs.setupAll()
val userList:List[User] = List(User(1,"Lynn",20),User(2,"zhangsan",19),User(3,"lisi",17))
println("新增数据:"+batchSave(userList))
println("查询数据:")
val users1 = select()
for (user <- users1){
println("id:"+user.id +" name:"+user.name+" age:"+user.age)
}
println("更新id:1的年龄:"+update(10,1))
val users2 = select()
for (user <- users2){
println("id:"+user.id +" name:"+user.name+" age:"+user.age)
}
println("删除id:1:"+deleteByID(1))
println("删除id:2:"+deleteByID(2))
println("删除id:3:"+deleteByID(3))
DBs.closeAll()
}
def deleteByID(id:Int) = {
DB.autoCommit { implicit session =>
SQL("delete from user where id = ?").bind(id).update().apply()
}
}
def update(setage:Int,pid:Int) {
DB.autoCommit { implicit session =>
SQL("update user set age = ? where id = ?").bind(setage, pid).update().apply()
}
}
def select():List[User] = {
DB.readOnly { implicit session =>
SQL("select * from user").map(rs => User(rs.int("id"), rs.string("name"), rs.int("age"))).list().apply()
}
}
def batchSave(users:List[User]) :Unit= {
DB.localTx { implicit session =>
for (user<- users){
SQL("insert into user(name,age,id) values(?,?,?)").bind(user.name, user.age, user.id).update().apply()
}
}
}
}
以下是我的操作结果:
具体事项建议查看官网:scalikejdbc.org/documentation/configuration.html