package com.taover.repository.jdbctemplate; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.ParameterizedPreparedStatementSetter; import org.springframework.jdbc.core.PreparedStatementCallback; import org.springframework.jdbc.core.PreparedStatementSetter; import org.springframework.jdbc.core.ResultSetExtractor; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.rowset.SqlRowSet; import com.taover.repository.exception.NoContainTenantException; public class JdbcTemplateWrapperTenantImpl implements JdbcTemplateWrapperTenant { private JdbcTemplate jdbcTemplate; public JdbcTemplateWrapperTenantImpl(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Override public void doCheckTenantId(String sql, ID tenantId) throws NoContainTenantException { } @Override public JdbcTemplate getJdbcTemplate() { return this.jdbcTemplate; } @Override public void execute(String sql, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.execute(sql); } @Override public E query(String sql, ResultSetExtractor rse, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, rse); } @Override public void query(String sql, RowCallbackHandler rch, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.query(sql, rch); } @Override public List query(String sql, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, rowMapper); } @Override public E queryForObject(String sql, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, rowMapper); } @Override public E queryForObject(String sql, Class requiredType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, requiredType); } @Override public Map queryForMap(String sql, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForMap(sql); } @Override public List queryForList(String sql, Class elementType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, elementType); } @Override public List> queryForList(String sql, ID tenantId) throws DataAccessException { return this.jdbcTemplate.queryForList(sql); } @Override public SqlRowSet queryForRowSet(String sql, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForRowSet(sql); } @Override public int update(String sql, ID tenantId) throws DataAccessException { return this.jdbcTemplate.update(sql); } @Override public int[] batchUpdate(ID tenantId, String... sql) throws DataAccessException { for(String item: sql) { this.doCheckTenantId(item, tenantId); } return this.jdbcTemplate.batchUpdate(sql); } @Override public E execute(String sql, PreparedStatementCallback action, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.execute(sql, action); } @Override public E query(String sql, PreparedStatementSetter pss, ResultSetExtractor rse, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, pss, rse); } @Override public E query(String sql, Object[] args, int[] argTypes, ResultSetExtractor rse, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, args, argTypes, rse); } @Override public E query(String sql, Object[] args, ResultSetExtractor rse, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, args, rse); } @Override public E query(String sql, ResultSetExtractor rse, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, rse, args); } @Override public void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.query(sql, pss, rch); } @Override public void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.query(sql, args, argTypes, rch); } @Override public void query(String sql, Object[] args, RowCallbackHandler rch, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.query(sql, args, rch); } @Override public void query(String sql, RowCallbackHandler rch, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); this.jdbcTemplate.query(sql, rch, args); } @Override public List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, pss, rowMapper); } @Override public List query(String sql, Object[] args, int[] argTypes, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, args, argTypes, rowMapper); } @Override public List query(String sql, Object[] args, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, args, rowMapper); } @Override public List query(String sql, RowMapper rowMapper, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.query(sql, rowMapper, args); } @Override public E queryForObject(String sql, Object[] args, int[] argTypes, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, args, argTypes, rowMapper); } @Override public E queryForObject(String sql, Object[] args, RowMapper rowMapper, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, args, rowMapper); } @Override public E queryForObject(String sql, RowMapper rowMapper, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, rowMapper, args); } @Override public E queryForObject(String sql, Object[] args, int[] argTypes, Class requiredType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, args, argTypes, requiredType); } @Override public E queryForObject(String sql, Object[] args, Class requiredType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, args, requiredType); } @Override public E queryForObject(String sql, Class requiredType, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForObject(sql, requiredType, args); } @Override public Map queryForMap(String sql, Object[] args, int[] argTypes, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForMap(sql, args, argTypes); } @Override public Map queryForMap(String sql, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForMap(sql, args); } @Override public List queryForList(String sql, Object[] args, int[] argTypes, Class elementType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, args, argTypes, elementType); } @Override public List queryForList(String sql, Object[] args, Class elementType, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, args, elementType); } @Override public List queryForList(String sql, Class elementType, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, elementType, args); } @Override public List> queryForList(String sql, Object[] args, int[] argTypes, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, args, argTypes); } @Override public List> queryForList(String sql, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForList(sql, args); } @Override public SqlRowSet queryForRowSet(String sql, Object[] args, int[] argTypes, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForRowSet(sql, args, argTypes); } @Override public SqlRowSet queryForRowSet(String sql, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.queryForRowSet(sql, args); } @Override public int update(String sql, PreparedStatementSetter pss, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.update(sql, pss); } @Override public int update(String sql, Object[] args, int[] argTypes, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.update(sql, args, argTypes); } @Override public int update(String sql, ID tenantId, Object... args) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.update(sql, args); } @Override public int[] batchUpdate(String sql, BatchPreparedStatementSetter pss, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.batchUpdate(sql, pss); } @Override public int[] batchUpdate(String sql, List batchArgs, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.batchUpdate(sql, batchArgs); } @Override public int[] batchUpdate(String sql, List batchArgs, int[] argTypes, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.batchUpdate(sql, batchArgs); } @Override public int[][] batchUpdate(String sql, Collection batchArgs, int batchSize, ParameterizedPreparedStatementSetter pss, ID tenantId) throws DataAccessException { this.doCheckTenantId(sql, tenantId); return this.jdbcTemplate.batchUpdate(sql, batchArgs, batchSize, pss); } }