how to execute the sql query in scala

JUST EXECUTE THE PARAMETER SQL NOT THE FULL SQL

import scalikejdbc.{DBSession, ReadOnlyAutoSession}
import java.time.LocalDateTime
import javax.inject.{Inject, Singleton}
import scalikejdbc._
import scala.collection.mutable.ArrayBuffer
/**
* 
*/
object HelloWorld {
  def main(args: Array[String]): Unit = {

    //WITHOUT PARAMETER
    val no_parameter: String = findMemberList("")
    //WITH PARAMETER
    val has_parameter: String = findMemberList("select * from  exchange_transaction")
    //RESULT IS RIGHT
    println(no_parameter)
    //RESULT IS WRONG
    println(has_parameter)
  }
  /**
  * 
  */
  private def findMemberList(segmentExecuteSql: String)(
    implicit
    session: DBSession = ReadOnlyAutoSession
  ): String = {
    //IF THE PARAMETER IS NULL THEN EXECUTE
    if (segmentExecuteSql.isEmpty) {
      //EXECUTE SQL
      sql"""
           select * from  exchange_transaction
         """
        .statement
    } else {
      sql"""
           $segmentExecuteSql
         """
        .statement
    }
  }
}

JUST EXECUTE FULL SQL

segmentExecuteSql->select * from  exchange_transaction

  private def findMemberList(segmentExecuteSql: Option[String])(
    implicit
    session: DBSession = ReadOnlyAutoSession
  ): List[String] = {
    if (segmentExecuteSql.isEmpty) {
      List()
    } else {
      val resultList: List[List[String]] =
        SQL(segmentExecuteSql.get)
          .map(
            rs =>
              List(
                rs.string("user_id")
              )
          )
          .list()
          .apply()
      var memberList = ArrayBuffer[String]()
      for (rowList <- resultList) {
        for (row <- rowList) {
          memberList += row.toString
        }
      }
      memberList.toSet.toList
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值