Один из способов - использовать один перегруженный фабричный метод org.jooq.impl.DSL
, который принимает javax.sql.DataSource
для построения org.jooq.DSLContext
:
using(DataSource datasource, SQLDialect dialect)
using(DataSource datasource, SQLDialect dialect, Settings settings)
Это может выглядеть примерно так:
final HikariConfig config = new HikariConfig();
config.setMinimumIdle(...);
config.setMaximumPoolSize(...);
// ...etc - whatever other pool behavior you desire
final HikariDataSource dataSource = new HikariDataSource(config);
final DSLContext dslContext = DSL.using(dataSource, SQLDialect.MYSQL)
Существует класс-оболочка ( scala.collection.jcl.MutableIterator.Wrapper
). Итак, если вы определите
implicit def javaIteratorToScalaIterator[A](it : java.util.Iterator[A]) = new Wrapper(it)
, он будет действовать как подкласс итератора Scala, поэтому вы можете выполнить foreach
.
Корректный ответ здесь должен определить неявное преобразование из Java Iterator
к некоторому пользовательскому типу. Этот тип должен реализовать foreach
метод, который делегирует к лежанию в основе Iterator
. Это позволит Вам использовать Scala for
- цикл с любым Java Iterator
.
Вы могли преобразовать набор Java в массив и использование что:
val array = java.util.Arrays.asList("one","two","three").toArray
array.foreach(println)
Или идут и преобразовывают массив в список Scala:
val list = List.fromArray(array)
Начиная с Scala 2.8, все, что вам нужно сделать, это импортировать объект JavaConversions, который уже объявляет соответствующие преобразования.
import scala.collection.JavaConversions._
Однако это не будет работать в предыдущих версиях.