scala 读取操作 scalalikejdbc

scala 读取操作

1. 读文件

object FileApp {
  def main(args: Array[String]): Unit = {
    val lines = Source.fromFile("data/input/ck").getLines()
    for(line <- lines){
      println(line)
    }
  }
}

2. 读控制台

/**
 * 读取控制台
 */

object scannerApp {
  def main(args: Array[String]): Unit = {
    val scanner = new Scanner(System.in)
    val str = scanner.nextLine()
    println(" ======== " + str)

    val line = StdIn.readLine("请输入数据: ")
    println(" ======== " + line)
  }
}

3. scala like jdbc

pom

            <dependency>
                <groupId>org.scalikejdbc</groupId>
                <artifactId>scalikejdbc_2.12</artifactId>
                <version>3.4.0</version>
            </dependency>

            <dependency>
                <groupId>org.scalikejdbc</groupId>
                <artifactId>scalikejdbc-config_2.12</artifactId>
                <version>3.4.0</version>
            </dependency>

application.conf

# JDBC settings
db.default.driver="com.mysql.jdbc.Driver"
db.default.url="jdbc:mysql://hadoop001:3306/"
db.default.user="root"
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

package com.hpznyf.rw

import scalikejdbc.{DB, SQL}
import scalikejdbc.config.DBs

object ScalikeJDBCApp {
  def main(args: Array[String]): Unit = {
    DBs.setupAll()

    transaction()
  }

  //插入
  def insert(): Unit ={
    DB.autoCommit{ implicit session =>{
      SQL("insert into dept(deptno, dname, loc) values(?,?,?)")
        .bind("50","MANONG","LUOSANGE")
        .update().apply()
    }
    }
  }

  //删除
  def delete(): Unit ={
    DB.autoCommit( implicit session => {
      SQL("DELETE FROM dept WHERE deptno=?")
        .bind(40)
        .update().apply()
    })
  }

  //更新
  def update(): Unit ={
    DB.autoCommit( implicit session => {
      SQL("UPDATE dept set deptno=? where dname=? and loc=?")
        .bind("60","MANONG","LUOSANGE")
        .update().apply()
    })
  }

  //读取
  def query(): Unit ={
    val members = DB.readOnly {
      implicit  session => {
        SQL("SELECT * FROM dept")
          .map(rs =>
            member(
              rs.int("deptno"),
              rs.string("dname"),
              rs.string("loc")
            )
          ).list().apply()
      }
    }

    members.foreach(println)
  }

  case class member(deptno:Int, dname:String, loc:String)

  //事务
  def transaction(): Unit ={
    DB.localTx( implicit session => {
      SQL("UPDATE dept set deptno=? where dname=? and loc=?")
        .bind("60","MANONG","LUOSANGE")
        .update().apply()
    })

    DB.localTx( implicit session => {
      SQL("UPDATE dept set deptno=? where dname=? and loc=?")
        .bind("50","OPRATIONS","BOSTON")
        .update().apply()
    })
  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值