2014-10-06 10 views
7

HikariCP'nin havuzdaki bağlantıları nasıl ele aldığını anlamak ister misiniz? Havuza yeni bir bağlantı nasıl koyarsınız ve daha sonra nasıl çağırırsınız?Yeni bağlantılar nasıl oluşturulur ve bunları daha sonra nasıl alabilirim HikariCP

Bu benim şimdiki kodudur:

HikariConfig config = new HikariConfig(); 
    config.setMaximumPoolSize(100); 

    config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource"); 
    config.addDataSourceProperty("serverName", "localhost"); 
    config.addDataSourceProperty("port", "8889"); 
    config.addDataSourceProperty("databaseName", "XXX"); 
    config.addDataSourceProperty("user", "XXX"); 
    config.addDataSourceProperty("password", "XXX"); 

    System.out.print("qq"); 

    HikariDataSource ds = new HikariDataSource(config); 
    ds.setConnectionTimeout(800); 

cevap

11

havuz ile, daha sonra almayı havuza bir bağlantı eklemeyin. Tam tersi yaparsınız: bir tane gerektiğinde havuzdan bir bağlantı alırsınız ve bağlantıyı bitirdiğinizde havuza geri vermek için bağlantıyı kapatırsınız. HikariDataSource, adından da anlaşılacağı gibi bir DataSource'tur. Bir DataSource, bağlantı aldığınız bir nesnedir.

Havuz, bağlantının açılmasını sizin için halleder. Herhangi bir bağlantı otomatik olarak mevcut değilse sizi bekleme kuyruğuna sokar.

Havuzun özelliklerine bağlı olarak, havuz bağlantıyı hemen açabilir veya talep üzerine açabilir, belirli sayıda bağlantıyı her zaman açabilirsiniz. kullanılmayan zaman verilen süre sonra havuz boyutu, vb hepsi çok iyi belgelenmiş bulunuyor

: https://github.com/brettwooldridge/HikariCP#user-content-configuration-knobs-baby

Örnek kod (daha sonra Java 7 ve üzeri):

try (Connection connection = ds.getConnection()) { 
    // use the connection 
} 

Örnek kodu (Java 7 önce):

Connection connection = ds.getConnection(); 
try { 
    // use the connection 
} 
finally { 
    connection.close(); 
} 
+0

Teşekkür ederiz. Bunu okudum, ama bunu anlamak için bazı kodlara ihtiyacım olduğuna inanıyorum. Kullanımda gösteren örnek kodunuz var mı? – miniHessel

+0

Başka bir DataSource kullandığınız gibi bir HikariDataSource kullanıyorsunuz: Bağlantı almak için DataSource'da 'getConnection()' işlevini çağırın, sonra bu bağlantıyı kullanın, ardından bağlantıyla işiniz bittiğinde 'connection.close()' öğesini çağırın. Bu standart JDBC. –

+0

Tamam, teşekkürler. Bu nedenle, daha sonra bağlantıyı kullanmanıza rağmen, close() yazmalı ve daha sonraConnection'a geçmelisiniz? – miniHessel

İlgili konular