25 Haziran 2018 Pazartesi

C3P0 JDBC Connection Pool - Kullanmayın

Giriş
Bu kütüphane genellikle Hibernate ile birlikte kullanılır. Hibernate ayarları için Hibernate CP30 yazısına bakabilirsiniz. Eğer tek başına kullanmak istersek bu yazıda bazı sınıflar için örnekler var.

ComboPooledDataSource Sınıfı
Giriş
Şu satırı dahil ederiz.
import com.mchange.v2.c3p0.ComboPooledDataSource;
constuctor
Şöyle yaparız.
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("swaldman");
cpds.setPassword("test-password");

// the settings below are optional -- c3p0 can work with defaults
cpds.setMinPoolSize(5);
cpds.setAcquireIncrement(5);
cpds.setMaxPoolSize(20);

// The DataSource cpds is now a fully configured and usable pooled DataSource 
setDriverClass metodu
Şöyle yaparız.
@Bean
public DataSource myDataSource() {

  // create connection pool
  ComboPooledDataSource myDataSource = new ComboPooledDataSource();

  // set the jdbc driver
  try {
    myDataSource.setDriverClass("com.mysql.jdbc.Driver");       
  }
  catch (PropertyVetoException exc) {
    throw new RuntimeException(exc);
  }


  // set database connection props
  myDataSource.setJdbcUrl(env.getProperty("jdbc.url"));
  myDataSource.setUser(env.getProperty("jdbc.user"));
  myDataSource.setPassword(env.getProperty("jdbc.password"));

  // set connection pool props
  myDataSource.setInitialPoolSize(getIntProperty("connection.pool.initialPoolSize"));
  myDataSource.setMinPoolSize(getIntProperty("connection.pool.minPoolSize"));
  myDataSource.setMaxPoolSize(getIntProperty("connection.pool.maxPoolSize"));     
  myDataSource.setMaxIdleTime(getIntProperty("connection.pool.maxIdleTime"));

  return myDataSource;
}

Hiç yorum yok:

Yorum Gönder