作业1:通过ScalikeJDBC对MySQL进行增删查改

通过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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值