2016-08-03 15 views
0

私はTeradataでScalikeJdbcを使用しようとしていますが、動作させることはできません。私は、設定ファイルを持っている:Scalikejdbc teradata "接続プールはまだ初期化されていません。"

application.conf 

# JDBC settings 
db.default.user="user" 
db.default.password="pass" 
# Connection Pool settings 
db.default.poolInitialSize=10 
db.default.poolMaxSize=20 
db.default.connectionTimeoutMillis=1000 

# Teradata 
db.default.driver="com.teradata.jdbc.TeraDriver" 
db.default.url="jdbc:teradata://url/database=db" 

コードは次のようになります。この例を実行している間

import scalikejdbc._ 
import scalikejdbc.config._ 


object DBObject { 
    DBs.setupAll() 

    case class Ad(id: Long, siteId: Int) 
    object Ad extends SQLSyntaxSupport[Ad] { 
    override val tableName = "ad_table" 

    def apply(rs: WrappedResultSet) = new Ad(rs.long("id"), rs.int("ad")) 
    } 

    ConnectionPool.borrow("default") 
    val ad = Ad.syntax("ad") 
    val ads = DB(ConnectionPool.borrow()) readOnly { implicit session => 
    withSQL { 
     select.from(Ad as ad).where.eq(ad.siteId, 3001).limit(10) 
    }.map(rs => Ad(rs)).list.apply 
    } 
} 

それが例外をスロー:Connection pool is not yet initialized. 私はここで何をしないのですか?

答えて

0

Tim、私はそれが特にTeradataに依存しないと思います。まずデフォルトの接続プールを初期化してみてください。 Postgresの小さな例:

object Main extends App { 

    def run() = { 
    Class.forName("org.postgresql.Driver") 
    val poolSettings = new ConnectionPoolSettings(initialSize = 100, maxSize = 100) 
    val url = "jdbc:postgresql://localhost:5432/test" 
    val user = "postgres" 
    val password = "postgres" 

    // create singleton(default) connection pool 
    ConnectionPool.singleton(url, user, password, poolSettings) 

    DB.localTx { implicit session ⇒ 
     val foos = Foo.findAll() 
     println(foos) 
    } 
    } 

    run() 
} 
関連する問題