Polishing
This commit is contained in:
@@ -74,9 +74,8 @@ public interface SimpleJdbcInsertOperations {
|
||||
|
||||
/**
|
||||
* Include synonyms for the column meta data lookups via JDBC.
|
||||
* Note: this is only necessary to include for Oracle since other
|
||||
* databases supporting synonyms seems to include the synonyms
|
||||
* automatically.
|
||||
* <p>Note: This is only necessary to include for Oracle since other databases
|
||||
* supporting synonyms seems to include the synonyms automatically.
|
||||
* @return the instance of this SimpleJdbcInsert
|
||||
*/
|
||||
SimpleJdbcInsertOperations includeSynonymsForTableColumnMetaData();
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.jdbc.CannotGetJdbcConnectionException;
|
||||
import org.springframework.jdbc.SQLWarningException;
|
||||
import org.springframework.jdbc.UncategorizedSQLException;
|
||||
import org.springframework.jdbc.core.support.AbstractInterruptibleBatchPreparedStatementSetter;
|
||||
import org.springframework.jdbc.datasource.ConnectionProxy;
|
||||
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
|
||||
import org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator;
|
||||
import org.springframework.jdbc.support.SQLStateSQLExceptionTranslator;
|
||||
@@ -65,16 +66,23 @@ import static org.springframework.tests.Matchers.*;
|
||||
*/
|
||||
public class JdbcTemplateTests {
|
||||
|
||||
private Connection connection;
|
||||
|
||||
private DataSource dataSource;
|
||||
|
||||
private PreparedStatement preparedStatement;
|
||||
|
||||
private Statement statement;
|
||||
|
||||
private ResultSet resultSet;
|
||||
|
||||
private JdbcTemplate template;
|
||||
|
||||
private CallableStatement callableStatement;
|
||||
|
||||
@Rule
|
||||
public ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
private Connection connection;
|
||||
private DataSource dataSource;
|
||||
private PreparedStatement preparedStatement;
|
||||
private Statement statement;
|
||||
private ResultSet resultSet;
|
||||
private JdbcTemplate template;
|
||||
private CallableStatement callableStatement;
|
||||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
@@ -96,6 +104,7 @@ public class JdbcTemplateTests {
|
||||
given(this.callableStatement.getResultSet()).willReturn(this.resultSet);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testBeanProperties() throws Exception {
|
||||
assertTrue("datasource ok", this.template.getDataSource() == this.dataSource);
|
||||
@@ -141,10 +150,9 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testStringsWithStaticSql() throws Exception {
|
||||
doTestStrings(false, null, null, null, null, new JdbcTemplateCallback() {
|
||||
doTestStrings(null, null, null, null, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, rch);
|
||||
}
|
||||
});
|
||||
@@ -152,10 +160,9 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testStringsWithStaticSqlAndFetchSizeAndMaxRows() throws Exception {
|
||||
doTestStrings(false, 10, 20, 30, null, new JdbcTemplateCallback() {
|
||||
doTestStrings(10, 20, 30, null, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, rch);
|
||||
}
|
||||
});
|
||||
@@ -163,10 +170,9 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testStringsWithEmptyPreparedStatementSetter() throws Exception {
|
||||
doTestStrings(true, null, null, null, null, new JdbcTemplateCallback() {
|
||||
doTestStrings(null, null, null, null, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, (PreparedStatementSetter) null, rch);
|
||||
}
|
||||
});
|
||||
@@ -175,10 +181,9 @@ public class JdbcTemplateTests {
|
||||
@Test
|
||||
public void testStringsWithPreparedStatementSetter() throws Exception {
|
||||
final Integer argument = 99;
|
||||
doTestStrings(true, null, null, null, argument, new JdbcTemplateCallback() {
|
||||
doTestStrings(null, null, null, argument, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, new PreparedStatementSetter() {
|
||||
@Override
|
||||
public void setValues(PreparedStatement ps) throws SQLException {
|
||||
@@ -191,10 +196,9 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testStringsWithEmptyPreparedStatementArgs() throws Exception {
|
||||
doTestStrings(true, null, null, null, null, new JdbcTemplateCallback() {
|
||||
doTestStrings(null, null, null, null, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, (Object[]) null, rch);
|
||||
}
|
||||
});
|
||||
@@ -203,20 +207,16 @@ public class JdbcTemplateTests {
|
||||
@Test
|
||||
public void testStringsWithPreparedStatementArgs() throws Exception {
|
||||
final Integer argument = 99;
|
||||
doTestStrings(true, null, null, null, argument, new JdbcTemplateCallback() {
|
||||
doTestStrings(null, null, null, argument, new JdbcTemplateCallback() {
|
||||
@Override
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql,
|
||||
RowCallbackHandler rch) {
|
||||
public void doInJdbcTemplate(JdbcTemplate template, String sql, RowCallbackHandler rch) {
|
||||
template.query(sql, new Object[] { argument }, rch);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void doTestStrings(
|
||||
boolean usePreparedStatement,
|
||||
Integer fetchSize, Integer maxRows, Integer queryTimeout, Object argument,
|
||||
JdbcTemplateCallback jdbcTemplateCallback)
|
||||
throws Exception {
|
||||
private void doTestStrings(Integer fetchSize, Integer maxRows, Integer queryTimeout,
|
||||
Object argument, JdbcTemplateCallback jdbcTemplateCallback) throws Exception {
|
||||
|
||||
String sql = "SELECT FORENAME FROM CUSTMR";
|
||||
String[] results = { "rod", "gary", " portia" };
|
||||
@@ -293,6 +293,19 @@ public class JdbcTemplateTests {
|
||||
verify(this.preparedStatement).close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConnectionCallback() throws Exception {
|
||||
String result = this.template.execute(new ConnectionCallback<String>() {
|
||||
@Override
|
||||
public String doInConnection(Connection con) {
|
||||
assertTrue(con instanceof ConnectionProxy);
|
||||
assertSame(JdbcTemplateTests.this.connection, ((ConnectionProxy) con).getTargetConnection());
|
||||
return "test";
|
||||
}
|
||||
});
|
||||
assertEquals("test", result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConnectionCallbackWithStatementSettings() throws Exception {
|
||||
String result = this.template.execute(new ConnectionCallback<String>() {
|
||||
@@ -724,7 +737,6 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testBatchUpdateWithListOfObjectArrays() throws Exception {
|
||||
|
||||
final String sql = "UPDATE NOSUCHTABLE SET DATE_DISPATCHED = SYSDATE WHERE ID = ?";
|
||||
final List<Object[]> ids = new ArrayList<>();
|
||||
ids.add(new Object[] {100});
|
||||
@@ -835,13 +847,15 @@ public class JdbcTemplateTests {
|
||||
|
||||
@Test
|
||||
public void testCouldntGetConnectionInOperationWithExceptionTranslatorInitializedViaBeanProperty()
|
||||
throws Exception {
|
||||
throws SQLException {
|
||||
|
||||
doTestCouldntGetConnectionInOperationWithExceptionTranslatorInitialized(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCouldntGetConnectionInOperationWithExceptionTranslatorInitializedInAfterPropertiesSet()
|
||||
throws Exception {
|
||||
throws SQLException {
|
||||
|
||||
doTestCouldntGetConnectionInOperationWithExceptionTranslatorInitialized(false);
|
||||
}
|
||||
|
||||
@@ -851,6 +865,7 @@ public class JdbcTemplateTests {
|
||||
*/
|
||||
private void doTestCouldntGetConnectionInOperationWithExceptionTranslatorInitialized(boolean beanProperty)
|
||||
throws SQLException {
|
||||
|
||||
SQLException sqlException = new SQLException("foo", "07xxx");
|
||||
this.dataSource = mock(DataSource.class);
|
||||
given(this.dataSource.getConnection()).willThrow(sqlException);
|
||||
|
||||
Reference in New Issue
Block a user