com.jpattern.orm.session.jdbctemplate.JdbcTemplateSessionProvider Maven / Gradle / Ivy
package com.jpattern.orm.session.jdbctemplate;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.PlatformTransactionManager;
import com.jpattern.orm.session.SessionProvider;
import com.jpattern.orm.session.SessionStrategy;
/**
*
* @author Francesco Cina
*
* 15/giu/2011
*/
public class JdbcTemplateSessionProvider extends SessionProvider {
private final ThreadLocal threadLocalJdbcTemplate = new ThreadLocal();
private final DataSource dataSource;
private final PlatformTransactionManager platformTransactionManager;
public JdbcTemplateSessionProvider(final DataSource dataSource, final PlatformTransactionManager platformTransactionManager) {
this.dataSource = dataSource;
this.platformTransactionManager = platformTransactionManager;
}
@Override
public SessionStrategy getSessionStrategy() {
return new JdbcTemplateSessionStrategy(getJdbcTemplate(), platformTransactionManager);
}
@Override
public DataSource getDataSource() {
return dataSource;
}
private JdbcTemplate getJdbcTemplate() {
getLogger().trace("Connection asked."); //$NON-NLS-1$
JdbcTemplate conn = threadLocalJdbcTemplate.get();
if (conn==null) {
getLogger().trace("No valid connections found, a new one will be created"); //$NON-NLS-1$
conn = new JdbcTemplate(dataSource);
threadLocalJdbcTemplate.set(conn);
}
return conn;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy