Querulous - это можно использовать с базой данных, кроме MySQL? - PullRequest
2 голосов
/ 26 декабря 2010

Я учусь на уроках и начал с этого кода:

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?Если это так, пожалуйста, укажите пример, как подключиться к нему;скалярное местоположение;нормальное (с комментариями) расположение источников.

1 Ответ

4 голосов
/ 27 декабря 2010

Эта вилка претендует на звание ванильной версии Querulous:

https://github.com/ollekullberg/querulous-light

Из их readme:

Примечание об этой вилке

Это форк Querulous-generic (Querulous-generic, в свою очередь, является форком версии Twitter). Эта вилка будет:

  • Работа над Scala 2.8
  • Работа на всех RDBM (ну, я только попробовал H2, поэтому я не знаю)
  • Не имеет зависимостей от модуля Twitters StandardProject.

Более продвинутые функции (тайм-аут и т. Д.), Вероятно, не работают, так как мне пришлось разбить некоторый код, чтобы попасть сюда.

Хотя я использую querulous, я использовал его только с mysql и сам не пробовал эту вилку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...