FAQ


Oracle DB / MS SQLServer supported?


ScalikeJDBC supports PostgreSQL, MySQL, H2 Database Engine and HSQLDB. We never release without passing all the unit tests with these RDBMS. If you’re using either of them, ScalikeJDBC should be very stable.

On the other hand, ScalikeJDBC simply uses JDBC drivers internally, so it basically should work fine with any other RDBMS.


How to use other connection pool?


ScalikeJDBC’s default connection pool implementation is Apache Commons DBCP.

You can easily use other implementation. See in detail:

/documentation/connection-pool.html


How to share same DB with Rails ActiveRecord?


As you know, Rails ActiveRecord saves timestamp values in UTC time zone. DB column types will be timetamp without timezone.

When you need to work with them, call the following Java TimeZone’s setter method (instead of DateTimeZone.setDefault(DateTimeZone.UTC)) at first.

java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("UTC"))

How to build a like condition part?


Use the scalikejdbc.LikeConditionEscapeUtil utility.

LikeConditionEscapeUtil.escape("foo%aa_bbb\\ccc")     // "foo\\%aa\\_bbb\\\\ccc"
LikeConditionEscapeUtil.beginsWith("foo%aa_bbb\\ccc") // "foo\\%aa\\_bbb\\\\ccc%"
LikeConditionEscapeUtil.endsWith("foo%aa_bbb\\ccc")   // "%foo\\%aa\\_bbb\\\\ccc"
LikeConditionEscapeUtil.contains("foo%aa_bbb\\ccc")   // "%foo\\%aa\\_bbb\\\\ccc%"

non-blocking support?


Unfortunately, no. Indeed, JDBC drivers block on socket IO. So using them to talk with RDBMS in async event driven architecture may not be appropriate. However, actually most of real world applications don’t need event-driven architecture yet. JDBC is still important infrastructure for apps on the JVM.

If you really prefer non-blocking database access, take a look at ScalikeJDBC-Async. It provides non-blocking APIs to talk with PostgreSQL and MySQL in the JDBC way.

https://github.com/scalikejdbc/scalikejdbc-async

ScalikeJDBC-Async is still in the alpha stage. If you don’t have the motivation to investigate or fix issues yourself, we recommend waiting until the stable version is released someday.


ORM feature?


ScalikeJDBC’s concept is a tidy wrapper of JDBC drivers, so it handles very lower layer than common ORMs. If you’re looking for an ORM which supports associations or other rich features, take a look at Skinny ORM.

Skinny ORM is the default DB access library of Skinny Framework. Skinny ORM is built upon ScalikeJDBC. In most cases, it will make things easier.

https://skinny-framework.github.io/documentation/orm.html


Is it possible to integrate with Play Framework?


Yes, it is. We support some Play plugins to seamlessly integrate ScalikeJDBC with Play Framework.

See in detail here: /documentation/playframework-support.html


License?


the Apache License, Version 2.0

https://github.com/scalikejdbc/scalikejdbc/blob/master/LICENSE.txt


If this webpage has a typo or something wrong, Please report or fix it. How?