diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Configuration.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Configuration.scala index 4e181254..f44102c7 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Configuration.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Configuration.scala @@ -249,7 +249,7 @@ object Configuration { } // Pre ==================================================================== - + def properties(props: (String, String)*) = set(0, pre) { _.getVariables.asScala ++= Map(props: _*) } @@ -282,39 +282,39 @@ object Configuration { def lazyLoadingSupport(enabled: Boolean) = set(10, pre) { _.setLazyLoadingEnabled(enabled) } - def aggressiveLazyLoading(enabled: Boolean) = + def aggressiveLazyLoading(enabled: Boolean) = set(11, pre) { _.setAggressiveLazyLoading(enabled) } - - def multipleResultSetsSupport(enabled: Boolean) = + + def multipleResultSetsSupport(enabled: Boolean) = set(12, pre) { _.setMultipleResultSetsEnabled(enabled) } - - def useColumnLabel(enabled: Boolean) = + + def useColumnLabel(enabled: Boolean) = set(13, pre) { _.setUseColumnLabel(enabled) } - - def useGeneratedKeys(enabled: Boolean) = + + def useGeneratedKeys(enabled: Boolean) = set(14, pre) { _.setUseGeneratedKeys(enabled) } - - def defaultExecutorType(executorType: ExecutorType) = + + def defaultExecutorType(executorType: ExecutorType) = set(15, pre) { _.setDefaultExecutorType(executorType.unwrap) } - - def defaultStatementTimeout(timeout: Int) = + + def defaultStatementTimeout(timeout: Int) = set(16, pre) { _.setDefaultStatementTimeout(timeout) } - - def mapUnderscoreToCamelCase(enabled: Boolean) = + + def mapUnderscoreToCamelCase(enabled: Boolean) = set(17, pre) { _.setMapUnderscoreToCamelCase(enabled) } - - def safeRowBoundsSupport(enabled: Boolean) = + + def safeRowBoundsSupport(enabled: Boolean) = set(18, pre) { _.setSafeRowBoundsEnabled(enabled) } - - def localCacheScope(localCacheScope: LocalCacheScope) = + + def localCacheScope(localCacheScope: LocalCacheScope) = set(19, pre) { _.setLocalCacheScope(localCacheScope.unwrap) } - - def jdbcTypeForNull(jdbcType: JdbcType) = + + def jdbcTypeForNull(jdbcType: JdbcType) = set(20, pre) { _.setJdbcTypeForNull(jdbcType.unwrap) } - - def lazyLoadTriggerMethods(names: Set[String]) = + + def lazyLoadTriggerMethods(names: Set[String]) = set(21, pre) { _.setLazyLoadTriggerMethods(names.asJava) } - + def environment(id: String, transactionFactory: TransactionFactory, dataSource: javax.sql.DataSource) = set(24, pre) { _.setEnvironment(new Environment(id, transactionFactory, dataSource)) } @@ -324,10 +324,10 @@ object Configuration { def typeHandler(jdbcType: JdbcType, handler: (T[_], TypeHandler[_])) = set(26, pre) { _.getTypeHandlerRegistry.register(handler._1.raw, jdbcType.unwrap, handler._2) } - def typeHandler(handler: (T[_], TypeHandler[_])) = + def typeHandler(handler: (T[_], TypeHandler[_])) = set(26, pre) { _.getTypeHandlerRegistry.register(handler._1.raw, handler._2) } - - def typeHandler(handler: TypeHandler[_]) = + + def typeHandler(handler: TypeHandler[_]) = set(26, pre) { _.getTypeHandlerRegistry.register(handler) } // Pos =========================================================== @@ -335,15 +335,15 @@ object Configuration { def namespace(name: String)(f: (ConfigurationSpace => Unit)) = set(0, pos) { c => f(new ConfigurationSpace(c.configuration, name)) } - def statements(s: Statement*) = + def statements(s: Statement*) = set(1, pos) { _ ++= s } - - def mappers(mappers: { def bind: Seq[Statement] }*) = + + def mappers(mappers: { def bind: Seq[Statement] }*) = set(1, pos) { c => mappers.foreach(c ++= _) } - - def cacheRef(that: ConfigurationSpace) = + + def cacheRef(that: ConfigurationSpace) = set(2, pos) { _.cacheRef(that) } - + def cache( impl: T[_ <: Cache] = DefaultCache, eviction: T[_ <: Cache] = Eviction.LRU, @@ -351,11 +351,11 @@ object Configuration { size: Int = -1, readWrite: Boolean = true, blocking : Boolean = false, - props: Properties = null) = + props: Properties = null) = set(2, pos) { _.cache(impl, eviction, flushInterval, size, readWrite, blocking, props) } // PENDING FOR mybatis 3.1.1+ ================================================== - + // TODO (3.1.1) def proxyFactory(factory: ProxyFactory) = set( 7, pre) { _.setProxyFactory(factory) } // TODO (3.1.1) def safeResultHandlerSupport(enabled : Boolean) = set(22, pre) { _.setSafeResultHandlerEnabled(enabled) } // TODO (3.1.1) def defaultScriptingLanguage(driver : T[_]) = set(23, pre) { _.setDefaultScriptingLanguage(driver) } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ConfigurationSpace.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ConfigurationSpace.scala index 723eac79..6308e15a 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ConfigurationSpace.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ConfigurationSpace.scala @@ -318,22 +318,22 @@ class ConfigurationSpace(configuration : MBConfig, val spaceName : String = "_DE val resultTypeClass = generator.resultTypeClass builderAssistant.addMappedStatement( - id, - sqlSource, - statementType, + id, + sqlSource, + statementType, sqlCommandType, - fetchSize, - timeout, - parameterMap, - parameterTypeClass, - resultMap, + fetchSize, + timeout, + parameterMap, + parameterTypeClass, + resultMap, resultTypeClass, - resultSetTypeEnum, - flushCache, + resultSetTypeEnum, + flushCache, useCache, - false, // TODO Issue #577 - keyGenerator, - keyProperty, + false, // TODO Issue #577 + keyGenerator, + keyProperty, keyColumn, databaseId, DefaultScriptingDriver) diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Environment.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Environment.scala index 52143b77..12ac0a8f 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Environment.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/Environment.scala @@ -17,8 +17,8 @@ package org.mybatis.scala.config import javax.sql.DataSource -/** - * +/** + * */ case class Environment(id : String, tf : TransactionFactory, ds : DataSource) { diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectFactory.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectFactory.scala index 8e01f5fb..6ef70758 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectFactory.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectFactory.scala @@ -27,30 +27,30 @@ class DefaultObjectFactory extends ObjectFactory { override def setProperties(properties : java.util.Properties) : Unit = {} private def instantiateClass[T](t : Class[_], constructorArgTypes : java.util.List[Class[_]], constructorArgs : java.util.List[AnyRef]) : T = { - + val argTypes = { - if (constructorArgTypes != null) + if (constructorArgTypes != null) constructorArgTypes.toArray[Class[_]](new Array[Class[_]](constructorArgTypes.size)) else null } - + val constructor = getConstructor(t, argTypes) val argValues = { - if (constructorArgs != null) + if (constructorArgs != null) constructorArgs.toArray[AnyRef](new Array[AnyRef](constructorArgs.size)) - else + else null } - + try { if (argTypes == null || argValues == null) { constructor.newInstance().asInstanceOf[T] } else { constructor.newInstance(argValues : _*).asInstanceOf[T] - } + } } catch { case e : Exception => @@ -90,8 +90,8 @@ class DefaultObjectFactory extends ObjectFactory { t } } - - def isCollection[T](t : Class[T]) : Boolean = + + def isCollection[T](t : Class[T]) : Boolean = classOf[scala.collection.Seq[_]].isAssignableFrom(t) || classOf[scala.collection.Set[_]].isAssignableFrom(t) @@ -112,9 +112,9 @@ class DefaultObjectFactory extends ObjectFactory { override def hashCode = _hc - override def equals(that : Any) = - that != null && - that.getClass == classOf[CacheKey] && + override def equals(that : Any) = + that != null && + that.getClass == classOf[CacheKey] && that.asInstanceOf[CacheKey]._hc == this._hc } @@ -134,7 +134,7 @@ class DefaultObjectFactory extends ObjectFactory { constructor.setAccessible(true) } constructor - } + } } catch { case e : Exception => @@ -144,7 +144,7 @@ class DefaultObjectFactory extends ObjectFactory { } throw new org.apache.ibatis.reflection.ReflectionException( "Error instantiating %s with invalid types (%s). Cause: %s".format(t.getSimpleName, args, e.getMessage), e); - } - } + } + } } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectWrapperFactory.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectWrapperFactory.scala index 1dc9674c..12186c7d 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectWrapperFactory.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/ObjectWrapperFactory.scala @@ -41,7 +41,7 @@ class ArrayBufferWrapper(buffer : scala.collection.mutable.ArrayBuffer[AnyRef]) class HashSetWrapper(set : scala.collection.mutable.HashSet[AnyRef]) extends CollectionObjectWrapper { import scala.jdk.CollectionConverters._ - def add(element : AnyRef) : Unit = set add element + def add(element : AnyRef) : Unit = set add element def addAll[E](elements : java.util.List[E]) : Unit = set.addAll(elements.asInstanceOf[java.util.Collection[AnyRef]].asScala) } @@ -54,7 +54,7 @@ class DefaultObjectWrapperFactory extends ObjectWrapperFactory { def getWrapperFor(metaObject : MetaObject, obj : AnyRef) : org.apache.ibatis.reflection.wrapper.ObjectWrapper = obj match { case o : scala.collection.mutable.ArrayBuffer[_] => new ArrayBufferWrapper(o.asInstanceOf[scala.collection.mutable.ArrayBuffer[AnyRef]]) case o : scala.collection.mutable.HashSet[_] => new HashSetWrapper(o.asInstanceOf[scala.collection.mutable.HashSet[AnyRef]]) - case _ => + case _ => throw new IllegalArgumentException("Type not supported: " + obj.getClass.getSimpleName) } } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/package.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/package.scala index 2288beb7..6c5fbc41 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/package.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/config/package.scala @@ -30,13 +30,13 @@ package org.mybatis.scala * } * val persistenceContext = config.createPersistenceContext * }}} - * + * * == Another example without external XML file and with default namespace == * {{{ * val config = Configuration( * Environment( - * "default", - * new JdbcTransactionFactory(), + * "default", + * new JdbcTransactionFactory(), * new PooledDataSource( * "org.hsqldb.jdbcDriver", * "jdbc:hsqldb:mem:scala", @@ -46,7 +46,7 @@ package org.mybatis.scala * ) * ) * config ++= MyDAO - * + * * val persistenceContext = config.createPersistenceContext * }}} */ @@ -55,27 +55,27 @@ package object config { type TransactionFactory = org.apache.ibatis.transaction.TransactionFactory type JdbcTransactionFactory = org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory type ManagedTransactionFactory = org.apache.ibatis.transaction.managed.ManagedTransactionFactory - + type PooledDataSource = org.apache.ibatis.datasource.pooled.PooledDataSource type UnpooledDataSource = org.apache.ibatis.datasource.unpooled.UnpooledDataSource type JndiDataSourceFactory = org.apache.ibatis.datasource.jndi.JndiDataSourceFactory - + type ObjectFactory = org.apache.ibatis.reflection.factory.ObjectFactory type ObjectWrapperFactory = org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory type DatabaseIdProvider = org.apache.ibatis.mapping.DatabaseIdProvider type LanguageDriver = org.apache.ibatis.scripting.LanguageDriver - + sealed abstract class LocalCacheScope { val unwrap : org.apache.ibatis.session.LocalCacheScope case object SESSION extends LocalCacheScope { val unwrap = org.apache.ibatis.session.LocalCacheScope.SESSION } case object STATEMENT extends LocalCacheScope { val unwrap = org.apache.ibatis.session.LocalCacheScope.STATEMENT } } - + sealed abstract class AutoMappingBehavior { val unwrap : org.apache.ibatis.session.AutoMappingBehavior case object FULL extends AutoMappingBehavior { val unwrap = org.apache.ibatis.session.AutoMappingBehavior.FULL } case object NONE extends AutoMappingBehavior { val unwrap = org.apache.ibatis.session.AutoMappingBehavior.NONE } case object PARTIAL extends AutoMappingBehavior { val unwrap = org.apache.ibatis.session.AutoMappingBehavior.PARTIAL } } - + } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Binding.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Binding.scala index 1098cff9..4006e13c 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Binding.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Binding.scala @@ -62,7 +62,7 @@ case object ModeINOUT extends ParamModeEnum("INOUT") * }}} * */ -object Binding { +object Binding { /** Custom Aliased Types */ private val valueTypes = Set("byte", "long", "short", "int", "double", "float", "boolean", @@ -83,7 +83,7 @@ object Binding { mode : ParamModeEnum = ModeIN, typeHandler : T[_ <: TypeHandler[_]] = null, resultMap : ResultMap[_] = null - ) : String = { + ) : String = { Seq[Option[String]]( Some(property) ,if (jdbcType != null) Some("jdbcType=" + jdbcType.toString) else None diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Delete.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Delete.scala index fbffe313..387b6ff3 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Delete.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Delete.scala @@ -22,8 +22,8 @@ import org.mybatis.scala.session.Session * @tparam Param Input parameter type of the apply method. * @version \$Revision$ */ -abstract class Delete [Param : Manifest] - extends Statement +abstract class Delete [Param : Manifest] + extends Statement with SQLFunction1[Param,Int] { def parameterTypeClass = manifest[Param].runtimeClass diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Insert.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Insert.scala index 2c8eca7e..9f7d19b5 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Insert.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Insert.scala @@ -22,7 +22,7 @@ import org.mybatis.scala.session.Session * @tparam Param Input parameter type of the apply method. * @version \$Revision$ */ -abstract class Insert[Param : Manifest] +abstract class Insert[Param : Manifest] extends Statement with SQLFunction1[Param,Int] { diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/OptionTypeHandler.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/OptionTypeHandler.scala index edc923e8..a792d476 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/OptionTypeHandler.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/OptionTypeHandler.scala @@ -29,7 +29,7 @@ import java.sql.ResultSet */ class OptionTypeHandler[T](delegate : TypeHandler[T]) extends TypeHandler[Option[T]] { - def setParameter(ps : PreparedStatement, i : Int, parameter : Option[T], jdbcType : JdbcTypeEnum) : Unit = + def setParameter(ps : PreparedStatement, i : Int, parameter : Option[T], jdbcType : JdbcTypeEnum) : Unit = parameter match { case None => delegate.setParameter(ps, i, null.asInstanceOf[T], jdbcType) case Some(v) => delegate.setParameter(ps, i, v, jdbcType) @@ -41,16 +41,16 @@ class OptionTypeHandler[T](delegate : TypeHandler[T]) extends TypeHandler[Option def getResult(rs : ResultSet, columnIndex : Int) : Option[T] = Option{ delegate.getResult(rs, columnIndex) } - def getResult(cs : CallableStatement, columnIndex : Int) : Option[T] = + def getResult(cs : CallableStatement, columnIndex : Int) : Option[T] = Option{ delegate.getResult(cs, columnIndex) } } /** Builtin Option TypeHandlers */ object TypeHandlers { - + import org.apache.ibatis.`type`._ - + class OptBooleanTypeHandler extends OptionTypeHandler(new BooleanTypeHandler()) class OptByteTypeHandler extends OptionTypeHandler(new ByteTypeHandler()) class OptShortTypeHandler extends OptionTypeHandler(new ShortTypeHandler()) diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Perform.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Perform.scala index a8e230c5..9a625cf8 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Perform.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Perform.scala @@ -20,17 +20,17 @@ import org.mybatis.scala.session.Session /** A mapped SQL UPDATE statement. * Basically this defines a function: (=> Int) */ -abstract class Perform +abstract class Perform extends Statement with SQLFunction0[Int] { def parameterTypeClass = classOf[Nothing] - + /** Exceutes the SQL Statement * @param s Implicit Session * @return number of affected rows */ def apply()(implicit s : Session) : Int = execute { s.update(fqi.id) } - + } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Select.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Select.scala index f6f20813..18b88306 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Select.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Select.scala @@ -71,14 +71,14 @@ sealed trait Select extends Statement { * }}} * @tparam Result retult type */ -abstract class SelectList[Result : Manifest] - extends Select +abstract class SelectList[Result : Manifest] + extends Select with SQLFunction0[Seq[Result]] { def parameterTypeClass = classOf[Nothing] def resultTypeClass = manifest[Result].runtimeClass - def apply()(implicit s : Session) : Seq[Result] = + def apply()(implicit s : Session) : Seq[Result] = execute { s.selectList[Result](fqi.id) } def handle[T](callback : ResultContext[_ <: T] => Unit)(implicit s : Session) : Unit = @@ -109,14 +109,14 @@ abstract class SelectList[Result : Manifest] * @tparam Param input parameter type * @tparam Result retult type */ -abstract class SelectListBy[Param : Manifest, Result : Manifest] - extends Select +abstract class SelectListBy[Param : Manifest, Result : Manifest] + extends Select with SQLFunction1[Param, Seq[Result]] { def parameterTypeClass = manifest[Param].runtimeClass def resultTypeClass = manifest[Result].runtimeClass - def apply(param : Param)(implicit s : Session) : Seq[Result] = + def apply(param : Param)(implicit s : Session) : Seq[Result] = execute { s.selectList[Param,Result](fqi.id, param) } def handle(param : Param, callback : ResultContext[_ <: Result] => Unit)(implicit s : Session) : Unit = @@ -146,14 +146,14 @@ abstract class SelectListBy[Param : Manifest, Result : Manifest] * }}} * @tparam Result retult type */ -abstract class SelectListPage[Result : Manifest] - extends Select +abstract class SelectListPage[Result : Manifest] + extends Select with SQLFunction1[RowBounds,Seq[Result]] { def parameterTypeClass = classOf[Nothing] def resultTypeClass = manifest[Result].runtimeClass - def apply(rowBounds : RowBounds)(implicit s : Session) : Seq[Result] = + def apply(rowBounds : RowBounds)(implicit s : Session) : Seq[Result] = execute { s.selectList[Null,Result](fqi.id, null, rowBounds) } def handle(rowBounds : RowBounds, callback : ResultContext[_ <: Seq[Result]] => Unit)(implicit s : Session) : Unit = @@ -184,14 +184,14 @@ abstract class SelectListPage[Result : Manifest] * @tparam Param input parameter type * @tparam Result retult type */ -abstract class SelectListPageBy[Param : Manifest, Result : Manifest] +abstract class SelectListPageBy[Param : Manifest, Result : Manifest] extends Select with SQLFunction2[Param, RowBounds, Seq[Result]] { def parameterTypeClass = manifest[Param].runtimeClass def resultTypeClass = manifest[Result].runtimeClass - def apply(param : Param, rowBounds : RowBounds)(implicit s : Session) : Seq[Result] = + def apply(param : Param, rowBounds : RowBounds)(implicit s : Session) : Seq[Result] = execute { s.selectList[Param,Result](fqi.id, param, rowBounds) } def handle(param : Param, rowBounds : RowBounds, callback : ResultContext[_ <: Seq[Result]] => Unit)(implicit s : Session) : Unit = @@ -221,14 +221,14 @@ abstract class SelectListPageBy[Param : Manifest, Result : Manifest] * }}} * @tparam Result retult type */ -abstract class SelectOne[Result : Manifest] +abstract class SelectOne[Result : Manifest] extends Select with SQLFunction0[Option[Result]] { def parameterTypeClass = classOf[Nothing] def resultTypeClass = manifest[Result].runtimeClass - def apply()(implicit s : Session) : Option[Result] = + def apply()(implicit s : Session) : Option[Result] = execute { val r = s.selectOne[Result](fqi.id); if (r == null) None else Some(r) @@ -259,14 +259,14 @@ abstract class SelectOne[Result : Manifest] * @tparam Param input parameter type * @tparam Result retult type */ -abstract class SelectOneBy[Param : Manifest, Result : Manifest] +abstract class SelectOneBy[Param : Manifest, Result : Manifest] extends Select with SQLFunction1[Param, Option[Result]] { def parameterTypeClass = manifest[Param].runtimeClass def resultTypeClass = manifest[Result].runtimeClass - def apply(param : Param)(implicit s : Session) : Option[Result] = + def apply(param : Param)(implicit s : Session) : Option[Result] = execute { val r = s.selectOne[Param,Result](fqi.id, param) if (r == null) None else Some(r) @@ -299,14 +299,14 @@ abstract class SelectOneBy[Param : Manifest, Result : Manifest] * @tparam ResultValue map Value type * @param mapKey Property to be used as map key */ -abstract class SelectMap[ResultKey, ResultValue : Manifest](mapKey : String) +abstract class SelectMap[ResultKey, ResultValue : Manifest](mapKey : String) extends Select with SQLFunction0[Map[ResultKey, ResultValue]] { def parameterTypeClass = classOf[Nothing] def resultTypeClass = manifest[ResultValue].runtimeClass - def apply()(implicit s : Session) : Map[ResultKey, ResultValue] = + def apply()(implicit s : Session) : Map[ResultKey, ResultValue] = execute { s.selectMap[ResultKey,ResultValue](fqi.id, mapKey) } } @@ -337,17 +337,17 @@ abstract class SelectMap[ResultKey, ResultValue : Manifest](mapKey : String) * @tparam ResultValue map Value type * @param mapKey Property to be used as map key */ -abstract class SelectMapBy[Param : Manifest, ResultKey, ResultValue : Manifest](mapKey : String) +abstract class SelectMapBy[Param : Manifest, ResultKey, ResultValue : Manifest](mapKey : String) extends Select with SQLFunction1[Param, Map[ResultKey, ResultValue]] { def parameterTypeClass = manifest[Param].runtimeClass def resultTypeClass = manifest[ResultValue].runtimeClass - def apply(param : Param)(implicit s : Session) : Map[ResultKey, ResultValue] = + def apply(param : Param)(implicit s : Session) : Map[ResultKey, ResultValue] = execute { s.selectMap[Param,ResultKey,ResultValue](fqi.id, param, mapKey) } -} +} /** Query for a Map of objects with RowBounds. * @@ -374,17 +374,17 @@ abstract class SelectMapBy[Param : Manifest, ResultKey, ResultValue : Manifest]( * @tparam ResultValue map Value type * @param mapKey Property to be used as map key */ -abstract class SelectMapPage[ResultKey, ResultValue : Manifest](mapKey : String) +abstract class SelectMapPage[ResultKey, ResultValue : Manifest](mapKey : String) extends Select with SQLFunction1[RowBounds, Map[ResultKey, ResultValue]] { def parameterTypeClass = classOf[Nothing] def resultTypeClass = manifest[ResultValue].runtimeClass - def apply(rowBounds : RowBounds)(implicit s : Session) : Map[ResultKey, ResultValue] = + def apply(rowBounds : RowBounds)(implicit s : Session) : Map[ResultKey, ResultValue] = execute { s.selectMap[Null,ResultKey,ResultValue](fqi.id, null, mapKey, rowBounds) } -} +} /** Query for a Map of objects with RowBounds and one input parameter. * @@ -412,14 +412,14 @@ abstract class SelectMapPage[ResultKey, ResultValue : Manifest](mapKey : String) * @tparam ResultValue map Value type * @param mapKey Property to be used as map key */ -abstract class SelectMapPageBy[Param : Manifest, ResultKey, ResultValue : Manifest](mapKey : String) +abstract class SelectMapPageBy[Param : Manifest, ResultKey, ResultValue : Manifest](mapKey : String) extends Select with SQLFunction2[Param, RowBounds, Map[ResultKey, ResultValue]] { def parameterTypeClass = manifest[Param].runtimeClass def resultTypeClass = manifest[ResultValue].runtimeClass - def apply(param : Param, rowBounds : RowBounds)(implicit s : Session) : Map[ResultKey, ResultValue] = + def apply(param : Param, rowBounds : RowBounds)(implicit s : Session) : Map[ResultKey, ResultValue] = execute { s.selectMap[Param,ResultKey,ResultValue](fqi.id, param, mapKey, rowBounds) } } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Statement.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Statement.scala index 90004bb0..4c7b68ec 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Statement.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Statement.scala @@ -45,8 +45,8 @@ trait Statement { var databaseId : String = null /** Scripting driver */ - var languageDriver = org.mybatis.scala.config.DefaultScriptingDriver - + var languageDriver = org.mybatis.scala.config.DefaultScriptingDriver + /** Dynamic SQL definition, an xml node with root <xsql> * == Code sample == * As simple as an static SQL: diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Update.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Update.scala index 34c53387..d82ebf31 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Update.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/mapping/Update.scala @@ -22,8 +22,8 @@ import org.mybatis.scala.session.Session * @tparam Param Input parameter type of the apply method. * @version \$Revision$ */ -abstract class Update[Param : Manifest] - extends Statement +abstract class Update[Param : Manifest] + extends Statement with SQLFunction1[Param,Int] { def parameterTypeClass = manifest[Param].runtimeClass diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/RowBounds.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/RowBounds.scala index 7b2921d8..46bc21c0 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/RowBounds.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/RowBounds.scala @@ -18,5 +18,5 @@ package org.mybatis.scala.session /** Wrapper of [[org.apache.ibatis.session.RowBounds]] */ case class RowBounds(val offset: Int, val limit: Int) { - val unwrap = new org.apache.ibatis.session.RowBounds(offset, limit) + val unwrap = new org.apache.ibatis.session.RowBounds(offset, limit) } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/Session.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/Session.scala index 1b3c8343..f478e298 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/Session.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/Session.scala @@ -109,7 +109,7 @@ class Session(sqls : SqlSession) { def rollback(force : Boolean) : Unit = sqls.rollback(force) def clearCache() : Unit = sqls.clearCache - + def flushStatements() : Seq[BatchResult] = sqls.flushStatements.asScala } diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/SessionManager.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/SessionManager.scala index 807c81a4..4d5ccbdf 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/SessionManager.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/SessionManager.scala @@ -71,8 +71,8 @@ sealed class SessionManager(factory : SqlSessionFactory) { finally { closeSession(sqlSession) } - } - + } + /** Executes the callback within a new session and rollback at the end. */ def readOnly[T](callback : Callback[T]) : T = readOnly[T]()(callback) @@ -102,27 +102,27 @@ sealed class SessionManager(factory : SqlSessionFactory) { } /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](executorType : ExecutorType, level : TransactionIsolationLevel)(callback : Callback[T]) : T = + def transaction[T](executorType : ExecutorType, level : TransactionIsolationLevel)(callback : Callback[T]) : T = transaction[T](factory.openSession(executorType.unwrap, level.unwrap))(callback) /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](executorType : ExecutorType)(callback : Callback[T]) : T = + def transaction[T](executorType : ExecutorType)(callback : Callback[T]) : T = transaction[T](factory.openSession(executorType.unwrap))(callback) /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](level : TransactionIsolationLevel)(callback : Callback[T]) : T = + def transaction[T](level : TransactionIsolationLevel)(callback : Callback[T]) : T = transaction[T](factory.openSession(level.unwrap))(callback) /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](executorType : ExecutorType, autoCommit : Boolean)(callback : Callback[T]) : T = + def transaction[T](executorType : ExecutorType, autoCommit : Boolean)(callback : Callback[T]) : T = transaction[T](factory.openSession(executorType.unwrap, autoCommit))(callback) /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](autoCommit : Boolean)(callback : Callback[T]) : T = + def transaction[T](autoCommit : Boolean)(callback : Callback[T]) : T = transaction[T](factory.openSession(autoCommit))(callback) /** Executes the callback within a new transaction and commit at the end, automatically calls rollback if any exception. */ - def transaction[T](callback : Callback[T]) : T = + def transaction[T](callback : Callback[T]) : T = transaction[T](ExecutorType.SIMPLE, TransactionIsolationLevel.UNDEFINED)(callback) /** Executes the callback within a new session. Does not call any transaction method. */ @@ -138,7 +138,7 @@ sealed class SessionManager(factory : SqlSessionFactory) { /** Executes the callback within a new session. Does not call any transaction method. */ def managed[T](callback : Callback[T]) : T = managed[T](ExecutorType.SIMPLE)(callback) - + } object SessionManager { diff --git a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/package.scala b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/package.scala index 02e8c9fd..63c4a9d2 100644 --- a/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/package.scala +++ b/mybatis-scala-core/src/main/scala/org/mybatis/scala/session/package.scala @@ -39,11 +39,11 @@ package object session { /** Alias of [[org.apache.ibatis.session.ResultHandler]] */ type ResultHandler[T] = MBResultHandler[T] - + /** Alias of [[org.apache.ibatis.session.ResultContext]] */ type ResultContext[T] = MBResultContext[T] - + /** Alias of [[org.apache.ibatis.executor.BatchResult]] */ type BatchResult = org.apache.ibatis.executor.BatchResult - + } diff --git a/mybatis-scala-core/src/test/scala/org/mybatis/scala/infrastructure/BlogRepository.scala b/mybatis-scala-core/src/test/scala/org/mybatis/scala/infrastructure/BlogRepository.scala index 4d0a0938..0b72340f 100644 --- a/mybatis-scala-core/src/test/scala/org/mybatis/scala/infrastructure/BlogRepository.scala +++ b/mybatis-scala-core/src/test/scala/org/mybatis/scala/infrastructure/BlogRepository.scala @@ -230,7 +230,7 @@ object BlogRepository { keyGenerator = JdbcGeneratedKey(null, "id") def xsql = INSERT INTO blog(title) VALUES({"title" ?}) } - + val insertEntry = new Insert[Entry] { keyGenerator = JdbcGeneratedKey(null, "id") def xsql = INSERT INTO entry(body) VALUES({"body" ?}) diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/ItemDAO.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/ItemDAO.scala index d1a0c74b..8d22948e 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/ItemDAO.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/ItemDAO.scala @@ -64,8 +64,8 @@ object ItemDAO { def xsql = INSERT INTO item(description_, info_, year_) - VALUES ( - { "description"? }, + VALUES ( + { "description"? }, {? ("info", jdbcType=JdbcType.VARCHAR)}, {? ("year", jdbcType=JdbcType.INTEGER)} ) @@ -76,7 +76,7 @@ object ItemDAO { def xsql = UPDATE item - SET + SET description_ = {"description"?}, info_ = {? ("info", jdbcType=JdbcType.VARCHAR)}, year_ = {? ("year", jdbcType=JdbcType.INTEGER)} diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/Main.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/Main.scala index 2480dc1a..c5493fb5 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/Main.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/crud/Main.scala @@ -45,7 +45,7 @@ object Main extends App { item.info = Some("-MEXICO-") ItemDAO update item } - + // Show again ... println("== With some changes =================") ItemDAO.findAll() foreach (printItem _) @@ -54,7 +54,7 @@ object Main extends App { for (item <- ItemDAO findById(3)) { ItemDAO delete item } - + // Show again ... println("== With some items removed ===========") ItemDAO.findAll() foreach (printItem _) @@ -65,7 +65,7 @@ object Main extends App { } - def printItem(i : Item) = + def printItem(i : Item) = println("%d: %10s\t %10s\t %5s" format (i.id, i.description, i.info.getOrElse("-"), i.year.getOrElse("-"))) } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/delete/DeleteSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/delete/DeleteSample.scala index 4cd702a0..49957fd0 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/delete/DeleteSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/delete/DeleteSample.scala @@ -83,7 +83,7 @@ object DeleteSample { DBSchema.create DBSampleData.populate - + println("Before =>") for (p <- findAll()) println( "\tPerson(%d): %s %s".format(p.id, p.firstName, p.lastName) ) diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSample.scala index 49f16dde..3db048cd 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSample.scala @@ -74,7 +74,7 @@ object InsertSample { db.transaction { implicit session => DBSchema.create - + val g = new Group g.name = "New Group" diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSampleBatch.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSampleBatch.scala index 39613a9a..22ad5142 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSampleBatch.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/insert/InsertSampleBatch.scala @@ -61,7 +61,7 @@ object InsertSampleBatch { // Create a configuration space, add the data access method config ++= Seq(insertPerson, insertGroup) - config ++= DBSchema + config ++= DBSchema // Build the session manager val db = config.createPersistenceContext @@ -71,9 +71,9 @@ object InsertSampleBatch { db.transaction(ExecutorType.BATCH) { implicit session => - DBSchema.create + DBSchema.create session.flushStatements() - + val g = new Group g.name = "New Group" insertGroup(g) @@ -94,7 +94,7 @@ object InsertSampleBatch { println( "\nCalled " + result.getUpdateCounts.size + " times") println( "Total update counts: " + result.getUpdateCounts.foldLeft(0)((a,b)=>a + b) ) } - + } } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/nestedselect/NestedSelectSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/nestedselect/NestedSelectSample.scala index ff1d0a8c..a92af7e1 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/nestedselect/NestedSelectSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/nestedselect/NestedSelectSample.scala @@ -50,14 +50,14 @@ object Persistence { // Query for a Group val selectGroup = new SelectOneBy[Int,Group] { - def xsql = + def xsql = - SELECT id_ as id, name_ as name - FROM people_group + SELECT id_ as id, name_ as name + FROM people_group WHERE id_ = #{{id}} } - + // Query for a list of contact info val selectContact = new SelectListBy[Int,ContactInfo] { resultMap = new ResultMap[ContactInfo] { @@ -67,7 +67,7 @@ object Persistence { } def xsql = SELECT * FROM contact_info WHERE owner_id_ = #{{id}} } - + // Query for a list of all persons val findAll = new SelectList[Person] { @@ -80,7 +80,7 @@ object Persistence { association[Group] (property="group", column="group_id_", select=selectGroup) - collection[ContactInfo] (property="contact", column="id_", select=selectContact) + collection[ContactInfo] (property="contact", column="id_", select=selectContact) } @@ -103,7 +103,7 @@ object Persistence { // Build the session manager lazy val context = config.createPersistenceContext - + } // Application code ============================================================ @@ -116,14 +116,14 @@ object NestedSelectSample { DBSchema.create DBSampleData.populate - + for (p <- Persistence.findAll()) { println("\nPerson(%d): %s %s (%s)".format(p.id, p.firstName, p.lastName, p.group.name)) for (contact <- p.contact) { println(" Address: %s, Phone: %s".format(contact.address, contact.phone)) } } - + } } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/performance/ProfileTest.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/performance/ProfileTest.scala index 06525dbc..ce97d124 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/performance/ProfileTest.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/performance/ProfileTest.scala @@ -30,7 +30,7 @@ object ProfileTest extends App { // Simple DDL val createTable = new Perform { - def xsql = + def xsql = CREATE TABLE test1 ( id_ INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1) not null, @@ -39,15 +39,15 @@ object ProfileTest extends App { ) } - + // Simple Insert val insert = new Insert[TestBean] { - def xsql = + def xsql = INSERT INTO test1(name_) VALUES ({"name"?}) } - + // Simple select val select = new SelectList[TestBean] { def xsql = @@ -56,12 +56,12 @@ object ProfileTest extends App { FROM test1 } - + // Datasource configuration val config = Configuration( Environment( - "default", - new JdbcTransactionFactory(), + "default", + new JdbcTransactionFactory(), new PooledDataSource( "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:scala", @@ -75,9 +75,9 @@ object ProfileTest extends App { config += createTable config += insert config += select - + // Insert 1.000.000 rows - val context = config.createPersistenceContext + val context = config.createPersistenceContext context.transaction { implicit s => createTable() for (i <- 1 to 1000000) { @@ -86,17 +86,17 @@ object ProfileTest extends App { insert(bean) } } - + // Read 1.000.000 rows into memory context.readOnly { implicit s => - val resultSeq = select() + val resultSeq = select() } - + // Read 1.000.000 rows one by one context.readOnly { implicit s => select.handle[TestBean] { context => val bean = context.getResultObject } } - + } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/resultmap/SelectWithResultMapSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/resultmap/SelectWithResultMapSample.scala index 13cae7b5..da9c89e4 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/resultmap/SelectWithResultMapSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/resultmap/SelectWithResultMapSample.scala @@ -48,7 +48,7 @@ class Person { // Data access layer =========================================================== object Persistence { - + // Simple select function (Nothing) => List[Person] val findAll = new SelectList[Person] { @@ -100,7 +100,7 @@ object Persistence { // Build the session manager lazy val context = config.createPersistenceContext - + } // Application code ============================================================ @@ -113,7 +113,7 @@ object SelectWithResultMapSample { DBSchema.create DBSampleData.populate - + for (p <- Persistence.findAll()) { println("\nPerson(%d): %s %s is in group: %s".format(p.id, p.firstName, p.lastName, p.group.name)) for (contact <- p.contact) { diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectImmutableSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectImmutableSample.scala index b0462ab9..0bcf8523 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectImmutableSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectImmutableSample.scala @@ -30,7 +30,7 @@ object CDB { // Simple select function val findAll = new SelectListBy[String,CPerson] { - + // CPerson Constructor Mapping resultMap = new ResultMap[CPerson] { // Warning: Order is important (constructor arguments in order) @@ -38,7 +38,7 @@ object CDB { arg ("first_name_", javaType=T[String]) arg ("last_name_", javaType=T[String]) } - + def xsql = """ SELECT @@ -51,21 +51,21 @@ object CDB { } // Main configuration - object ConfigurationSpec extends Configuration.Builder { + object ConfigurationSpec extends Configuration.Builder { // Connection settings environment( - id = "default", - transactionFactory = new JdbcTransactionFactory(), + id = "default", + transactionFactory = new JdbcTransactionFactory(), dataSource = new PooledDataSource("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:scala", "sa", "") ) // Add the data access methods to default namespace statements(findAll) - mappers(DBSchema, DBSampleData) + mappers(DBSchema, DBSampleData) } - + // Build the session manager lazy val context = Configuration(ConfigurationSpec).createPersistenceContext - + } // Application code ============================================================ @@ -76,17 +76,17 @@ object SelectImmutableSample { // Do the Magic ... def main(args: Array[String]): Unit = context.transaction { implicit s => - + // Create database and populate it with sample data DBSchema.create DBSampleData.populate - + // Query findAll("%a%").foreach { case CPerson(id, firstName, lastName) => println("Person(%d): %s %s" format (id, firstName, lastName)) } - + } } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectSample.scala index 9a6750a8..a7ef087f 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/select/SelectSample.scala @@ -51,8 +51,8 @@ object DB { // Datasource configuration val config = Configuration( Environment( - "default", - new JdbcTransactionFactory(), + "default", + new JdbcTransactionFactory(), new PooledDataSource( "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:scala", @@ -69,7 +69,7 @@ object DB { // Build the session manager lazy val context = config.createPersistenceContext - + } // Application code ============================================================ @@ -83,10 +83,10 @@ object SelectSample { DBSchema.create DBSampleData.populate - DB.findAll("a").foreach { p => + DB.findAll("a").foreach { p => println( "Person(%d): %s %s".format(p.id, p.firstName, p.lastName) ) } - + } } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/update/UpdateSample.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/update/UpdateSample.scala index 012ababa..37b038a1 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/update/UpdateSample.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/update/UpdateSample.scala @@ -62,8 +62,8 @@ object UpdateSample { } config ++= DBSchema - config ++= DBSampleData - + config ++= DBSampleData + // Build the session manager val db = config.createPersistenceContext @@ -73,26 +73,26 @@ object UpdateSample { db.transaction { implicit session => DBSchema.create - DBSampleData.populate - + DBSampleData.populate + findPerson(1) match { case Some(p) => - + // Show original println("Before =>\n\tPerson(%d): %s, %s".format(p.id, p.lastName, p.firstName)) - + // Update a property p.firstName = "Sun (Updated " + new java.util.Date + ")" - updatePerson(p) - + updatePerson(p) + // Reload to verify - for (p2 <- findPerson(1)) + for (p2 <- findPerson(1)) println( "After =>\n\tPerson(%d): %s, %s".format(p2.id, p2.lastName, p2.firstName) ) - + case None => println("Person with id=1 does not exists!!!") } - + } } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSampleData.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSampleData.scala index c37b75c6..da087710 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSampleData.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSampleData.scala @@ -21,45 +21,45 @@ import org.mybatis.scala.session._ object DBSampleData { val insertPerson = new Insert[java.util.Map[_,_]] { - def xsql = + def xsql = INSERT INTO person(id_, first_name_, last_name_, group_id_) VALUES (#{{id}}, #{{firstname}}, #{{lastname}}, #{{group}}) } - + val insertGroup = new Insert[java.util.Map[_,_]] { - def xsql = + def xsql = INSERT INTO people_group(id_, name_) VALUES (#{{id}}, #{{name}}) } - + val insertContactInfo = new Insert[java.util.Map[_,_]] { - def xsql = + def xsql = INSERT INTO contact_info (owner_id_, street_address_, phone_number_) VALUES (#{{person}}, #{{address}}, #{{phone}}) } - + def bind = Seq(insertContactInfo, insertGroup, insertPerson) - + def populate(implicit s : Session) = { - + import scala.jdk.CollectionConverters._ - + insertGroup(Map("id" -> 1, "name" -> "Customers").asJava) insertGroup(Map("id" -> 2, "name" -> "Suppliers").asJava) insertGroup(Map("id" -> 3, "name" -> "Employees").asJava) - + insertPerson(Map("id" -> 1, "firstname" -> "John", "lastname" -> "Smart", "group" -> 1).asJava) insertPerson(Map("id" -> 2, "firstname" -> "Maria", "lastname" -> "Perez", "group" -> 2).asJava) insertPerson(Map("id" -> 3, "firstname" -> "Janeth", "lastname" -> "Ros", "group" -> 1).asJava) insertPerson(Map("id" -> 4, "firstname" -> "Paul", "lastname" -> "Jobs", "group" -> 3).asJava) insertPerson(Map("id" -> 5, "firstname" -> "Bill", "lastname" -> "Rich", "group" -> 1).asJava) - + insertContactInfo(Map("person" -> 1, "address" -> "222 Street", "phone" -> "555-0988998").asJava) insertContactInfo(Map("person" -> 2, "address" -> "333 Av", "phone" -> "554-7464363").asJava) insertContactInfo(Map("person" -> 2, "address" -> "1 Rose Ave", "phone" -> "836-8456463").asJava) @@ -67,7 +67,7 @@ object DBSampleData { insertContactInfo(Map("person" -> 4, "address" -> "555 Wall Street", "phone" -> "666-7474664").asJava) insertContactInfo(Map("person" -> 5, "address" -> "666 Mountain View", "phone" -> "571-9875923").asJava) insertContactInfo(Map("person" -> 5, "address" -> "777 Mars", "phone" -> "587-3984792").asJava) - + } - + } diff --git a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSchema.scala b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSchema.scala index 6b4a44c3..91a1b4e2 100644 --- a/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSchema.scala +++ b/mybatis-scala-samples/src/main/scala/org/mybatis/scala/samples/util/DBSchema.scala @@ -21,7 +21,7 @@ import org.mybatis.scala.session.Session object DBSchema { val createPeopleGroupTable = new Perform { - def xsql = + def xsql = CREATE TABLE people_group ( id_ INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1) not null, @@ -30,9 +30,9 @@ object DBSchema { ) } - + val createPersonTable = new Perform { - def xsql = + def xsql = CREATE TABLE person ( id_ INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1) not null, @@ -44,9 +44,9 @@ object DBSchema { ) } - + val createContactInfoTable = new Perform { - def xsql = + def xsql = CREATE TABLE contact_info ( id_ INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1) not null, @@ -60,11 +60,11 @@ object DBSchema { } val bind = Seq(createPeopleGroupTable, createPersonTable, createContactInfoTable) - + def create(implicit s: Session): Unit = { createPeopleGroupTable() createPersonTable() createContactInfoTable() } - + } diff --git a/pom.xml b/pom.xml index e891551d..42fb74d2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@