All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.scalaquery.ql.basic.BasicQueryInvoker.scala Maven / Gradle / Ivy

package org.scalaquery.ql.basic

import java.sql.PreparedStatement
import org.scalaquery.StatementInvoker
import org.scalaquery.{Invoker, MappedInvoker, UnitInvokerMixin, MutatingStatementInvoker, DelegatingMutatingUnitInvoker}
import org.scalaquery.ql.{Query, ColumnBase}
import org.scalaquery.session.{Session, PositionedParameters, PositionedResult, ReadAheadIterator}
import org.scalaquery.util.{CloseableIterator, NamingContext}

class BasicQueryInvoker[R](q: Query[ColumnBase[R]], profile: BasicProfile)
  extends MutatingStatementInvoker[Unit, R] with UnitInvokerMixin[R] with DelegatingMutatingUnitInvoker[Unit, R] {

  override protected val delegate = this

  protected lazy val built = profile.buildSelectStatement(q, NamingContext())

  def selectStatement = getStatement

  protected def getStatement = built.sql

  protected def setParam(param: Unit, st: PreparedStatement): Unit = built.setter(new PositionedParameters(st), null)

  protected def extractValue(rs: PositionedResult): R = q.value.getResult(profile, rs)

  protected def updateRowValues(rs: PositionedResult, value: R) = q.value.updateResult(profile, rs, value)

  def invoker: this.type = this
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy