Я учусь на уроках и начал с этого кода:
import com.twitter.querulous.evaluator.QueryEvaluator
class Querulous {
def test {
val queryEvaluator = QueryEvaluator("org.h2.Driver", "jdbc:h2:tcp://localhost/~/test", "sa", "")
val names = queryEvaluator.select("select (name) from mytable where id in (?)", List(1, 2, 3)) {
row =>
row.getString("name")
}
println(names)
}
}
Результат выполнения следующий:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Отказ линии связи
Последний пакет успешно отправлен
сервер был 0 миллисекунд назад.
Водитель не получил пакетов
с сервера.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native
Метод)
в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27)
в java.lang.reflect.Constructor.newInstance (Constructor.java:513)
в com. mysql .jdbc.Util.handleNewInstance (Util.java:409)
в com. mysql .jdbc.SQLError.createCommunicationsException (SQLError.java:1118)
at com. mysql .jdbc.MysqlIO. (MysqlIO.java:343)
в com. mysql .jdbc.ConnectionImpl.connectOneTryOnly (ConnectionImpl.java:2308)
в com. mysql .jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2122)
в com. mysql .jdbc.ConnectionImpl. (ConnectionImpl.java:774)
в com. mysql .jdbc.JDBC4Connection. (JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native
Метод)
в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27)
в java.lang.reflect.Constructor.newInstance (Constructor.java:513)
в com.mysql.jdbc.Util.handleNewInstance (Util.java:409)
на com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:375)
на com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:289)
в java.sql.DriverManager.getConnection (DriverManager.java:582)
в java.sql.DriverManager.getConnection (DriverManager.java:185)
в org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection (DriverManagerConnectionFactory.java:75)
в org.apache.commons.dbcp.PoolableConnectionFactory.makeObject (PoolableConnectionFactory.java:582)
в org.apache.commons.pool.impl.GenericObjectPool.borrowObject (GenericObjectPool.java:1148)
на org.apache.commons.dbcp.PoolingDataSource.getConnection (PoolingDataSource.java:106)
в com.twitter.querulous.database.ApachePoolingDatabase.open (ApachePoolingDatabase.scala: 93)
в com.twitter.querulous.database.Database $ class.withConnection (Database.scala: 33)
в com.twitter.querulous.database.ApachePoolingDatabase.withConnection (ApachePoolingDatabase.scala: 45)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.withTransaction (StandardQueryEvaluator.scala: 66)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.select (StandardQueryEvaluator.scala: 23)
в com.twitter.querulous.evaluator.QueryEvaluator $ class.select (QueryEvaluator.scala: 88)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.select (StandardQueryEvaluator.scala: 19)
в org.database.Querulous.test (Querulous.scala: 10)
в org.database.Main $ .main (Main.scala: 4)
в org.database.Main.main (Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native
Метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
в java.lang.reflect.Method.invoke (Method.java:597)
на sbt.Run.run0 (Run.scala: 60)
на sbt.Run.execute $ 1 (Run.scala: 47)
на sbt.Run $$ anonfun $ run $ 2.apply (Run.scala: 50)на sbt.Run $$ anonfun $ run $ 2.apply (Run.scala: 50)
на sbt.TrapExit $ .executeMain $ 1 (TrapExit.scala: 33)
на sbt.TrapExit $$ anon $ 1.run (TrapExit.scala: 42)
Вызванный:
java.net.UnknownHostException:
org.h2.Driver
at java.net.Inet6AddressImpl.lookupAllHostAddr (Native
Метод)
на java.net.InetAddress $ 1.lookupAllHostAddr (InetAddress.java:850)
в java.net.InetAddress.getAddressFromNameService (InetAddress.java:1201)
в java.net.InetAddress.getAllByName0 (InetAddress.java:1154)
в java.net.InetAddress.getAllByName (InetAddress.java:1084)
на java.net.InetAddress.getAllByName (InetAddress.java:1020)
на com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java:275)
на com.mysql.jdbc.MysqlIO. (MysqlIO.java:292)
на com.mysql.jdbc.ConnectionImpl.connectOneTryOnly (ConnectionImpl.java:2308)
на com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2122)
на com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:774)
на com.mysql.jdbc.JDBC4Connection. (JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native
Метод)
в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27)
в java.lang.reflect.Constructor.newInstance (Constructor.java:513)
в com.mysql.jdbc.Util.handleNewInstance (Util.java:409)
на com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:375)
на com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:289)
в java.sql.DriverManager.getConnection (DriverManager.java:582)
в java.sql.DriverManager.getConnection (DriverManager.java:185)
в org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection (DriverManagerConnectionFactory.java:75)
в org.apache.commons.dbcp.PoolableConnectionFactory.makeObject (PoolableConnectionFactory.java:582)
в org.apache.commons.pool.impl.GenericObjectPool.borrowObject (GenericObjectPool.java:1148)
на org.apache.commons.dbcp.PoolingDataSource.getConnection (PoolingDataSource.java:106)
в com.twitter.querulous.database.ApachePoolingDatabase.open (ApachePoolingDatabase.scala: 93)
в com.twitter.querulous.database.Database $ class.withConnection (Database.scala: 33)
в com.twitter.querulous.database.ApachePoolingDatabase.withConnection (ApachePoolingDatabase.scala: 45)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.withTransaction (StandardQueryEvaluator.scala: 66)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.select (StandardQueryEvaluator.scala: 23)
в com.twitter.querulous.evaluator.QueryEvaluator $ class.select (QueryEvaluator.scala: 88)
в com.twitter.querulous.evaluator.StandardQueryEvaluator.select (StandardQueryEvaluator.scala: 19)
в org.database.Querulous.test (Querulous.scala: 10)
в org.database.Main $ .main (Main.scala: 4)
в org.database.Main.main (Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native
Метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
в java.lang.reflect.Method.invoke (Method.java:597)
на sbt.Run.run0 (Run.scala: 60)
на sbt.Run.execute $ 1 (Run.scala: 47)
на sbt.Run $$ anonfun $ run $ 2.apply (Run.scala: 50)
на sbt.Run $$ anonfun $ run $ 2.apply (Run.scala: 50)
на sbt.TrapExit $ .executeMain $ 1 (TrapExit.scala: 33)
на sbt.TrapExit $$ anon $ 1.run (TrapExit.scala: 42)
[info] == run == [error] Ошибка выполнения
Выполнить: Ненулевой код выхода: 1
Что касается меня, это выглядит не очень хорошо.Кажется, что querulous можно использовать только с mysql rdbms.Это правда?Во-вторых, есть куча интересных проектов 1 2 3 4 с немного другими инструкциями, например, от 1:
val queryEvaluator = QueryEvaluator ("host", "username", "password")
(я не понял, что такое "host")означает)
из 2 :
val queryEvaluator = QueryEvaluator ("com.mysql.jdbc.Driver", "jdbc: mysql: // localhost /mydb "," username "," password ")
(использовал это как образец)
И наконец, я использовал" com.twitter "%" querulous_2.8.0 "%«1.5.0» для бинарных файлов и клонированного git: //github.com/twitter/querulous.git, чтобы иметь источники (нет 1,5 источников, доступных для скачивания), но у них нет любых комментариев.
Итак, вопросы: можно ли использовать querulous с базами данных, кроме mysql?Если это так, пожалуйста, укажите пример, как подключиться к нему;скалярное местоположение;нормальное (с комментариями) расположение источников.