当前位置: 首页>>代码示例>>Scala>>正文


Scala ResultSet类代码示例

本文整理汇总了Scala中java.sql.ResultSet的典型用法代码示例。如果您正苦于以下问题:Scala ResultSet类的具体用法?Scala ResultSet怎么用?Scala ResultSet使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ResultSet类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: DBAccessWorker

//设置package包名称以及导入依赖的类
package domain

import java.sql.{Connection, ResultSet, Statement}

import scala.collection.immutable.IndexedSeq

case class DBAccessWorker(connection: Connection, sql: String) {

  private def execute(execSql: String) = {
    val stmt: Statement = connection.createStatement
    val rs: ResultSet = stmt.executeQuery(execSql)
    val columnCnt: Int = rs.getMetaData.getColumnCount

    val columns: IndexedSeq[String] = 1 to columnCnt map rs.getMetaData.getColumnName
    val results: Iterator[IndexedSeq[String]] = Iterator.continually(rs).takeWhile(_.next()).map{ rs =>
      columns map rs.getString
    }

    (columns, results)
  }

  def execute(): SqlResults = {
    val (d1, d2) = execute(sql)
    SqlResults(d1, d2)
  }

  def executeStatistics(): Statistics = {
    val (d1, d2) = execute(s"EXPLAIN $sql")
    Statistics(d1, d2)
  }
}

case class SqlResults(columns: IndexedSeq[String], results: Iterator[IndexedSeq[String]])

case class Statistics(columns: IndexedSeq[String], results: Iterator[IndexedSeq[String]]) 
开发者ID:miya5n,项目名称:miyalikejdbc,代码行数:36,代码来源:DBAccessWorker.scala

示例2: DbUtils

//设置package包名称以及导入依赖的类
package com.citypay.pan.search.db

import java.sql.{Connection, ResultSet}
import javax.sql.DataSource

import com.jolbox.bonecp.BoneCP

import scala.collection.mutable.ListBuffer

object DbUtils {

  def withConn[T](ds: BoneCP)(fn: Connection => T): T = {
    val conn = ds.getConnection
    try {
      fn(conn)
    } finally {
      conn.close()
    }
  }

  implicit class RsExtender(rs: ResultSet) {

    def toList[T](row: ResultSet => T): List[T] = {
      var buffer = ListBuffer[T]()
      try {
        while (rs.next()) {
          buffer += row(rs)
        }
      } finally {
        rs.close()
      }
      buffer.toList
    }

  }


} 
开发者ID:citypay,项目名称:citypay-pan-search,代码行数:39,代码来源:DbUtils.scala

示例3: Helpers

//设置package包名称以及导入依赖的类
package mon4all.db

import java.sql.{Connection, ResultSet, SQLException, Statement}

object Helpers {

  def getCurrentTimeStamp = {
		val today = new java.util.Date()
		new java.sql.Timestamp(today.getTime())
	}

  def printSQLException(e: SQLException) {
    val msg: String =
      "SQL State: " + e.getSQLState + "\n" +
      "Message: " + e.getMessage + "\n\n"
    println(msg)
  }

  def executeSQL(sql: String, stmt: Statement, ignore: Set[String] = Set()) {
    try stmt.execute(sql)
    catch {
      case e: SQLException =>
        if(ignore(e.getSQLState())) println("SQLException ignored")
        else printSQLException(e)
    }
  }

  
  def createTables(sql: String*)(implicit conn: Connection) {
    sql foreach(s => executeSQL(s, conn.createStatement, Set("X0Y32")))
  }

  def dropTables(tables: String*)(implicit conn: Connection) {
    tables foreach(table => executeSQL("DROP TABLE " + table, conn.createStatement))
  }


  trait ResultSetToList {
    def toList[T](retrieve: ResultSet => T): List[T]
  }
  implicit def wrapResultSet(rs: ResultSet) = new ResultSetToList {
    def toList[T](retrieve: ResultSet => T): List[T] =
      new Iterator[T] {
        def hasNext = rs.next()
        def next() = retrieve(rs)
      }
      .toList
  }

} 
开发者ID:dansuzuki,项目名称:mon4all,代码行数:51,代码来源:Helpers.scala

示例4: Vote

//设置package包名称以及导入依赖的类
package models

import java.sql.ResultSet

import scalikejdbc._
import skinny.orm.{Alias, SkinnyCRUDMapperWithId}

import scala.util.Random

case class Vote(
    id: VoteId,
    destId: DestId,
    sessionId: SessionId,
    ip: Long,
    created: Long
)

case class VoteId(value: Long) extends AnyVal {
  override def toString = value.toString
}

object VoteId {
  val typeBinder: TypeBinder[VoteId] = new TypeBinder[VoteId] {
    override def apply(rs: ResultSet, columnIndex: Int): VoteId = VoteId(rs.getLong(columnIndex))
    override def apply(rs: ResultSet, columnLabel: String): VoteId = VoteId(rs.getLong(columnLabel))
  }
}

object Vote extends SkinnyCRUDMapperWithId[VoteId, Vote] {
  implicit def voteIdTypeBinder = VoteId.typeBinder
  implicit def destIdTypeBinder = DestId.typeBinder
  implicit def sessionIdTypeBinder = SessionId.typeBinder
  override val useExternalIdGenerator = true

  override def idToRawValue(id: VoteId): Any = id.value
  override def rawValueToId(value: Any): VoteId = VoteId(value.toString.toLong)

  override def generateId(): VoteId = VoteId(Random.nextLong())

  override def defaultAlias: Alias[Vote] = createAlias("v")

  override def extract(rs: WrappedResultSet, n: ResultName[Vote]): Vote = autoConstruct(rs, n)

  def create(destId: DestId, sessionId: SessionId, ip: Long)(implicit db: DBSession) =
    createWithAttributes(
      'id -> generateId(),
      'destId -> destId.value,
      'sessionId -> sessionId.value,
      'ip -> ip,
      'created -> System.currentTimeMillis()
    )
} 
开发者ID:ponkotuy,项目名称:ponkotuy-travel,代码行数:53,代码来源:Vote.scala

示例5: Session

//设置package包名称以及导入依赖的类
package models

import java.sql.ResultSet

import scalikejdbc._
import skinny.orm.{Alias, SkinnyCRUDMapperWithId}

case class Session(id: SessionId, created: Long) {
  def save()(implicit session: DBSession) = Session.create(this)
}

case class SessionId(value: Long) extends AnyVal {
  override def toString: String = value.toString
}

object SessionId {
  val typeBinder: TypeBinder[SessionId] = new TypeBinder[SessionId] {
    override def apply(rs: ResultSet, columnIndex: Int): SessionId = SessionId(rs.getLong(columnIndex))
    override def apply(rs: ResultSet, columnLabel: String): SessionId = SessionId(rs.getLong(columnLabel))
  }
}

object Session extends SkinnyCRUDMapperWithId[SessionId, Session] {
  implicit def sessionIdTypeBinder = SessionId.typeBinder
  override val useExternalIdGenerator = true

  override def idToRawValue(id: SessionId): Any = id.value
  override def rawValueToId(value: Any): SessionId = SessionId(value.toString.toLong)

  override def defaultAlias: Alias[Session] = createAlias("s")

  override def extract(rs: WrappedResultSet, n: ResultName[Session]): Session = autoConstruct(rs, n)

  def create(session: Session)(implicit db: DBSession) =
    createWithAttributes('id -> session.id, 'created -> session.created)
} 
开发者ID:ponkotuy,项目名称:ponkotuy-travel,代码行数:37,代码来源:Session.scala

示例6: mapColumnTypeToScalaType

//设置package包名称以及导入依赖的类
package com.datawizards.dbtable2class.dialects

import java.sql.{DriverManager, ResultSet}
import org.apache.log4j.Logger
import com.datawizards.dbtable2class.model.ColumnMetadata
import scala.collection.mutable.ListBuffer

trait Dialect {
  protected val log: Logger = Logger.getLogger(getClass.getName)

  def mapColumnTypeToScalaType(column: ColumnMetadata): String

  def extractTableColumns(dbUrl: String, connectionProperties: java.util.Properties, database: String, schema: String, table: String): Iterable[ColumnMetadata] = {
    Class.forName(driverClassName)
    val connection = DriverManager.getConnection(dbUrl, connectionProperties)
    val query = extractTableColumnsQuery(database, schema, table)
    val rs = connection.createStatement().executeQuery(query)
    val buffer = new ListBuffer[ColumnMetadata]
    while(rs.next()) {
      buffer += extractColumnMetadata(rs)
    }
    connection.close()

    val extractedColumns = buffer.toList
    if(extractedColumns.size == 0){
      throw new RuntimeException(s"No columns found for specified table ${database}.${schema}.${table}. Please check if table is correct.")
    }
    extractedColumns
  }

  protected def extractColumnMetadata(rs: ResultSet): ColumnMetadata =
    ColumnMetadata(
      columnName = rs.getString(columnWithColumnName),
      typeName = rs.getString(columnWithTypeName)
    )

  protected def driverClassName: String
  protected def extractTableColumnsQuery(database: String, schema: String, table: String): String
  protected def columnWithColumnName: String
  protected def columnWithTypeName: String

} 
开发者ID:piotr-kalanski,项目名称:dbtable2class,代码行数:43,代码来源:Dialect.scala

示例7: objectOfResultSet

//设置package包名称以及导入依赖的类
package services.database

import java.sql.{ResultSet, SQLException}


  def objectOfResultSet[A] (resultSet : ResultSet, toObject : (ResultSet ? A)) : A =
  {
    if (resultSet.next())
      toObject(resultSet)
    else
    {
      throw new SQLException("objectOfResultSet: no result found.")
    }
  }
} 
开发者ID:dannywillems,项目名称:scala-micro-service-user,代码行数:16,代码来源:ConverterTools.scala

示例8: UserQuery

//设置package包名称以及导入依赖的类
package database

import models.{Types, User}

import java.sql.{Connection, PreparedStatement, ResultSet, SQLException, Statement}

object UserQuery {
  def create(
    connection : Connection,
    main_email : String,
    password : String,
    firstname : String,
    lastname : String,
    avatar : String
  ) : Types.userid = {
    val statement : PreparedStatement =
      connection.prepareStatement(
        "INSERT INTO users.user (" +
          "main_email, " +
          "password, " +
          "firstname, " +
          "lastname, " +
          "avatar) " +
          "VALUES(?, ?, ?, ?, ?)",
        Statement.RETURN_GENERATED_KEYS
      )

    statement.setString(0, main_email)
    statement.setString(1, password)
    statement.setString(2, firstname)
    statement.setString(3, lastname)
    statement.setString(4, avatar)

    val generatedKeys : ResultSet = statement.getGeneratedKeys()
    if (generatedKeys.next()) {
      generatedKeys.getLong(1)
    }
    else {
      throw new SQLException("Adding ad failed. No ID obtained.")
    }
  }
} 
开发者ID:dannywillems,项目名称:scala-micro-service-user,代码行数:43,代码来源:UserQuery.scala

示例9: Session

//设置package包名称以及导入依赖的类
package com.boost.bigdata.utils.db

import java.sql.Connection
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
import com.boost.bigdata.utils.log.LogSupport

class Session(connection: Connection) extends LogSupport{

  private var conn: Connection = connection
  private var stmt: Statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE)

  def executeQuery(sql: String): ResultSet = {
    var rs: ResultSet = null
    try {
      if (stmt != null) {
        rs = stmt.executeQuery(sql)
      }
    }
    catch {
      case e: SQLException => {
        log.warn(e.getMessage)
      }
    }
    rs
  }

  def executeUpdate(sql: String): Boolean = {
    var ret: Boolean = false
    try {
      if (stmt != null) {
        stmt.executeUpdate(sql)
        ret = true
      }
    }
    catch {
      case e: SQLException => {
        log.warn(e.getMessage)
      }
    }
    ret
  }

  def disconnect {
    MySql.closeStatement(stmt)
    stmt = null
    MySql.closeConnection(conn)
    conn = null
  }
}

object Session{
  def apply(con: Connection) = new Session(con)
} 
开发者ID:steven-prgm,项目名称:bigdata-scala,代码行数:56,代码来源:Session.scala

示例10: findCustomerById

//设置package包名称以及导入依赖的类
package com.github.fcristovao.dao

import java.sql.ResultSet
import java.util.UUID

import org.skife.jdbi.v2.StatementContext
import org.skife.jdbi.v2.sqlobject.customizers.Mapper
import org.skife.jdbi.v2.sqlobject.{Bind, SqlQuery}
import org.skife.jdbi.v2.tweak.ResultSetMapper
import com.github.fcristovao.domain.{Customer, CustomerId}


trait CustomerDao {
  @SqlQuery("select * from customers where customer_id = :id limit 1")
  @Mapper(classOf[CustomerMapper])
  def findCustomerById(@Bind("id") id: CustomerId) : Customer
}


class CustomerMapper extends ResultSetMapper[Customer] {
  override def map(index: Int, r: ResultSet, ctx: StatementContext): Customer = {
    Customer(UUID.fromString(r.getString("customer_id")))
  }
} 
开发者ID:fcristovao,项目名称:heroku-dropwizard-scala,代码行数:25,代码来源:CustomerDao.scala

示例11: CopySourceSpec

//设置package包名称以及导入依赖的类
package it

import java.sql.ResultSet

import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Sink
import akka.util.ByteString
import org.scalatest.{AsyncFlatSpec, BeforeAndAfterAll, Matchers}
import ru.arigativa.akka.streams.ConnectionProvider._
import ru.arigativa.akka.streams.{PgCopySourceSettings, PgCopyStreamConverters}
import util.PostgresFixture


class CopySourceSpec extends AsyncFlatSpec with Matchers with PostgresFixture with BeforeAndAfterAll {

  implicit val system = ActorSystem()
  implicit val materializer = ActorMaterializer()
  override def afterAll(): Unit = {
    system.terminate()
  }

  def fetchPeople(rs: ResultSet): (Long, String, Int) = {
    rs.next()
    (rs.getLong(1), rs.getString(2), rs.getInt(3))
  }

  "PgCopySource" should "copy bytes as expected" in {
    withPostgres("people_filled") { conn =>
      PgCopyStreamConverters.bytesSource("COPY (SELECT id, name, age FROM people) TO STDOUT", PgCopySourceSettings(conn))
        .runWith(Sink.fold(ByteString.empty) {
          case (acc, next) => acc ++ next
        })
        .map { result =>
          result.decodeString("UTF-8") shouldBe (
            "1\tAlex\t26\n" +
            "2\tLisa\t22\n" +
            "3\tWith\\r\\n\\t special chars\\\\\t10\n" +
            "4\t\\N\t-1\n"
          )
        }
    }
  }

  "PgCopySource" should "copy lines as expected" in {
    withPostgres("people_filled") { conn =>
      PgCopyStreamConverters.source("COPY (SELECT id, name, age FROM people) TO STDOUT", PgCopySourceSettings(conn))
        .runWith(Sink.seq)
        .map { result =>
          result shouldBe Seq(
            Seq("1", "Alex", "26"),
            Seq("2", "Lisa", "22"),
            Seq("3", "With\r\n\t special chars\\", "10"),
            Seq("4", null, "-1")
          )
        }
    }
  }
} 
开发者ID:klpx,项目名称:akka-streams-postgresql-copy,代码行数:60,代码来源:CopySourceSpec.scala

示例12: toEntityList

//设置package包名称以及导入依赖的类
package petclinic
package mysql

import scala.collection.mutable.ListBuffer
import java.sql.ResultSet

trait FromResultSet[A] {
  def toEntityList(rs: ResultSet): List[A] = {
    val buffer = new ListBuffer[A]
    while (rs.next) {
      buffer += convert(rs)
    }
    buffer.toList
  }

  def toEntity(rs: ResultSet): Option[A] =
    toEntityList(rs).headOption

  protected def convert(rs: ResultSet): A
}

object FromResultSet {

  def apply[A](implicit instance: FromResultSet[A]): FromResultSet[A] = instance
  private def build[A](f: ResultSet => A): FromResultSet[A] = new FromResultSet[A] {
    def convert(rs: ResultSet): A = f(rs)
  }

  implicit val petFromRs: FromResultSet[Pet] =
    build { rs =>
      Pet(
        Some(rs.getLong(PetRepo.Id)),
        rs.getString(PetRepo.Name),
        rs.getObject(PetRepo.BirthDate, classOf[java.time.LocalDate]),
        rs.getLong(PetRepo.TypeId),
        rs.getLong(PetRepo.OwnerId)
      )
    }

  implicit val petTypeFromRs: FromResultSet[PetType] =
    build { rs =>
      PetType(Some(rs.getLong(PetRepo.Id)), rs.getString(PetRepo.Name))
    }

  implicit val ownerFromRs: FromResultSet[Owner] =
    build { rs =>
      Owner(
        Some(rs.getLong(OwnerRepo.Id)),
        rs.getString(OwnerRepo.FirstName) + " " + rs.getString(OwnerRepo.LastName),
        rs.getString(OwnerRepo.FirstName),
        rs.getString(OwnerRepo.LastName),
        rs.getString(OwnerRepo.Address),
        rs.getString(OwnerRepo.City),
        rs.getString(OwnerRepo.Telephone)
      )
    }
} 
开发者ID:juanjovazquez,项目名称:scala-petclinic,代码行数:58,代码来源:FromResultSet.scala

示例13: RichConnection

//设置package包名称以及导入依赖的类
// RichConnection.scala

import java.sql.{Connection, ResultSet}

class RichConnection(val underlying:Connection) {

  
  def withQuery[T](query:String)(f:ResultSet => T):T = {
    val statement = underlying.prepareStatement(query)
    val results = statement.executeQuery
    try {
      f(results) // loan the ResultSet to the client
    }
    finally {
      // Ensure all the resources get freed.
      results.close
      statement.close
    }
  }
} 
开发者ID:apusingh1967,项目名称:scalaMLWithBreeze,代码行数:21,代码来源:RichConnection.scala

示例14: Article

//设置package包名称以及导入依赖的类
package app.util.db.table

import java.sql.ResultSet
import scala.collection.mutable.ListBuffer
import app.util.db.Postgre.Query

object Article {
  val NAME = "Article"
  val ID = "id"
  val TITLE = "title"
  val CONTENT = "content"

  def from(rs: ResultSet): Article =
    new Article(
      rs.getLong(ID),
      rs.getString(TITLE),
      rs.getString(CONTENT)
    )

  def create() =
    Query.execute(s"""
      CREATE TABLE IF NOT EXISTS $NAME(
        $ID BIGSERIAL PRIMARY KEY,
        $TITLE VARCHAR(1024),
        $CONTENT TEXT
      )
    """);

  def drop() = Query.execute(s"DROP TABLE $NAME");

  def select(): List[Article] = {
    val rs = Query.builder(s"SELECT * FROM $NAME").executeQuery()
    var list = ListBuffer.empty[Article]
    while (rs.next())
      list += Article.from(rs)
    list.toList
  }
}

class Article(var id: Long, var title: String, var content: String) {
  import Article._

  def insert() =
    Query.builder(s"INSERT INTO $NAME ($TITLE) VALUES (?)")
      .set(title)
      .executeUpdate()
} 
开发者ID:hwshim0810,项目名称:scalable-board,代码行数:48,代码来源:Article.scala

示例15: createSomethingTable

//设置package包名称以及导入依赖的类
package pl.scalare.impl.repo

import java.sql.ResultSet

import org.skife.jdbi.v2.StatementContext
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper
import org.skife.jdbi.v2.sqlobject.{Bind, BindBean, SqlQuery, SqlUpdate}
import org.skife.jdbi.v2.tweak.ResultSetMapper
import pl.scalare.core.model.Event
import pl.scalare.core.repo.EventRepo

@RegisterMapper(Array(classOf[EventMapper]))
trait EventRepoImpl extends EventRepo {
  @SqlUpdate("create table events (id int primary key, uuid varchar, json varchar)")
  def createSomethingTable()

  @SqlUpdate("insert into events (id, uuid, json) values (:id, :uuid, :json)")
  def insert(@BindBean event: Event)

  @SqlUpdate("insert into events (id, uuid, json) values (:id, :uuid, :json)")
  def insert(@Bind("id") id: Int, @Bind("uuid") uuid: String, @Bind("json") json: String)

  @SqlQuery("select * from events")
  def getAll: List[Event]

  @SqlQuery("select * from events where id = :id")
  def findById(@Bind("id") id: Int): Event
}

class EventMapper extends ResultSetMapper[Event] {
  def map(index: Int, rs: ResultSet, ctx: StatementContext) = new Event(rs.getInt("id"), rs.getString("uuid"), rs.getString("json"))
} 
开发者ID:writeonly,项目名称:scalare,代码行数:33,代码来源:EventRepoImpl.scala


注:本文中的java.sql.ResultSet类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。