
org.hibernate.examples.utils.DataSources Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-examples Show documentation
Show all versions of hibernate-examples Show documentation
Hibernate 2nd level cache using Redis examples.
The newest version!
package org.hibernate.examples.utils;
import com.jolbox.bonecp.BoneCPDataSource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
import java.util.Properties;
/**
* {@link javax.sql.DataSource} 를 생성, 제공하는 Helper Object 입니다.
*
* @author 배성혁 [email protected]
* @since 2013. 11. 28. 오전 11:04
*/
@Slf4j
public class DataSources {
private DataSources() {}
public static final String HSQL_DRIVER_CLASS_NAME = "org.hsql.jdbcDriver";
public static final String H2_DRIVER_CLASS_NAME = "org.h2.Driver";
/**
* {@link javax.sql.DataSource} 를 빌드합니다. 기본적으로 Tomcat DataSource 를 사용합니다.
*
* @param driverClass DriverClass 명
* @param url Database 주소
* @return [[javax.sql.DataSource]] 인스턴스
*/
public static DataSource getDataSource(String driverClass, String url) {
return getDataSource(driverClass, url, "", "");
}
/**
* {@link javax.sql.DataSource} 를 빌드합니다. 기본적으로 Tomcat DataSource 를 사용합니다.
*
* @param driverClass DriverClass 명
* @param url Database 주소
* @param username 사용자 명
* @param passwd 사용자 패스워드
* @return [[javax.sql.DataSource]] 인스턴스
*/
public static DataSource getDataSource(String driverClass, String url, String username, String passwd) {
return getHikariDataSource(driverClass, url, username, passwd, null);
// return getBoneCPDataSource(driverClass, url, username, passwd);
// return getTomcatDataSource(driverClass, url, username, passwd);
}
/**
* HikariCP DataSource를 생성합니다.
*
* @param driverClass DriverClass 명
* @param url Database 주소
* @param username 사용자 명
* @param passwd 사용자 패스워드
* @return [[javax.sql.DataSource]] 인스턴스
*/
public static DataSource getHikariDataSource(String driverClass,
String url,
String username,
String passwd,
Properties props) {
HikariConfig config = new HikariConfig();
config.setDriverClassName(driverClass);
config.setJdbcUrl(url);
config.setUsername(username);
config.setPassword(passwd);
// MySQL 인 경우 성능을 위해 아래 설정을 사용합니다.
if (DataConst.DRIVER_CLASS_MYSQL.equals(driverClass)) {
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
config.addDataSourceProperty("useServerPrepStmts", "true");
}
if (props != null) {
for (Map.Entry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy