Search in sources :

Example 1 with PreparedStatementExecutor

use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.

the class PreparedStatementExecutorTest method assertExecuteUpdateForMultiplePreparedStatementsFailure.

@Test
public void assertExecuteUpdateForMultiplePreparedStatementsFailure() throws SQLException {
    PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
    PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
    SQLException exp = new SQLException();
    when(preparedStatement1.executeUpdate()).thenThrow(exp);
    when(preparedStatement2.executeUpdate()).thenThrow(exp);
    when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
    when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
    PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DML, createPreparedStatementUnits(DML_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
    assertThat(actual.executeUpdate(), is(0));
    verify(preparedStatement1).executeUpdate();
    verify(preparedStatement2).executeUpdate();
    verify(preparedStatement1).getConnection();
    verify(preparedStatement2).getConnection();
    verify(getEventCaller(), times(2)).verifySQLType(SQLType.DML);
    verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
    verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
    verify(getEventCaller(), times(4)).verifySQL(DML_SQL);
    verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_FAILURE);
    verify(getEventCaller(), times(2)).verifyException(exp);
}
Also used : PreparedStatementExecutor(io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor) SQLException(java.sql.SQLException) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Example 2 with PreparedStatementExecutor

use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.

the class PreparedStatementExecutorTest method assertExecuteForMultiplePreparedStatements.

@Test
public void assertExecuteForMultiplePreparedStatements() throws SQLException {
    PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
    PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
    when(preparedStatement1.execute()).thenReturn(true);
    when(preparedStatement2.execute()).thenReturn(true);
    when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
    when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
    PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
    assertTrue(actual.execute());
    verify(preparedStatement1).execute();
    verify(preparedStatement2).execute();
    verify(preparedStatement1).getConnection();
    verify(preparedStatement2).getConnection();
    verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
    verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
    verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
    verify(getEventCaller(), times(4)).verifySQL(DQL_SQL);
    verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
    verify(getEventCaller(), times(0)).verifyException(null);
}
Also used : PreparedStatementExecutor(io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Example 3 with PreparedStatementExecutor

use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.

the class PreparedStatementExecutorTest method assertExecuteQueryForMultiplePreparedStatementsFailure.

@Test
public void assertExecuteQueryForMultiplePreparedStatementsFailure() throws SQLException {
    PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
    PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
    SQLException exp = new SQLException();
    when(preparedStatement1.executeQuery()).thenThrow(exp);
    when(preparedStatement2.executeQuery()).thenThrow(exp);
    when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
    when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
    PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
    List<ResultSet> actualResultSets = actual.executeQuery();
    assertThat(actualResultSets, is(Arrays.asList((ResultSet) null, null)));
    verify(preparedStatement1).executeQuery();
    verify(preparedStatement2).executeQuery();
    verify(preparedStatement1).getConnection();
    verify(preparedStatement2).getConnection();
    verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
    verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
    verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
    verify(getEventCaller(), times(4)).verifySQL(DQL_SQL);
    verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_FAILURE);
    verify(getEventCaller(), times(2)).verifyException(exp);
}
Also used : PreparedStatementExecutor(io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor) SQLException(java.sql.SQLException) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Example 4 with PreparedStatementExecutor

use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.

the class PreparedStatementExecutorTest method assertExecuteForSinglePreparedStatementWithDQL.

@Test
public void assertExecuteForSinglePreparedStatementWithDQL() throws SQLException {
    PreparedStatement preparedStatement = mock(PreparedStatement.class);
    when(preparedStatement.execute()).thenReturn(true);
    when(preparedStatement.getConnection()).thenReturn(mock(Connection.class));
    PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DQL, createPreparedStatementUnits(DQL_SQL, preparedStatement, "ds_0"), Collections.emptyList());
    assertTrue(actual.execute());
    verify(preparedStatement).execute();
    verify(getEventCaller(), times(2)).verifySQLType(SQLType.DQL);
    verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
    verify(getEventCaller(), times(2)).verifySQL(DQL_SQL);
    verify(getEventCaller(), times(2)).verifyParameters(Collections.emptyList());
    verify(getEventCaller()).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
    verify(getEventCaller()).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
    verify(getEventCaller(), times(0)).verifyException(null);
}
Also used : PreparedStatementExecutor(io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Example 5 with PreparedStatementExecutor

use of io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor in project sharding-jdbc by shardingjdbc.

the class PreparedStatementExecutorTest method assertExecuteUpdateForMultiplePreparedStatementsSuccess.

@Test
public void assertExecuteUpdateForMultiplePreparedStatementsSuccess() throws SQLException {
    PreparedStatement preparedStatement1 = mock(PreparedStatement.class);
    PreparedStatement preparedStatement2 = mock(PreparedStatement.class);
    when(preparedStatement1.executeUpdate()).thenReturn(10);
    when(preparedStatement2.executeUpdate()).thenReturn(20);
    when(preparedStatement1.getConnection()).thenReturn(mock(Connection.class));
    when(preparedStatement2.getConnection()).thenReturn(mock(Connection.class));
    PreparedStatementExecutor actual = new PreparedStatementExecutor(getExecutorEngine(), SQLType.DML, createPreparedStatementUnits(DML_SQL, preparedStatement1, "ds_0", preparedStatement2, "ds_1"), Collections.emptyList());
    assertThat(actual.executeUpdate(), is(30));
    verify(preparedStatement1).executeUpdate();
    verify(preparedStatement2).executeUpdate();
    verify(preparedStatement1).getConnection();
    verify(preparedStatement2).getConnection();
    verify(getEventCaller(), times(2)).verifySQLType(SQLType.DML);
    verify(getEventCaller(), times(2)).verifyDataSource("ds_0");
    verify(getEventCaller(), times(2)).verifyDataSource("ds_1");
    verify(getEventCaller(), times(4)).verifySQL(DML_SQL);
    verify(getEventCaller(), times(4)).verifyParameters(Collections.emptyList());
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.BEFORE_EXECUTE);
    verify(getEventCaller(), times(2)).verifyEventExecutionType(EventExecutionType.EXECUTE_SUCCESS);
    verify(getEventCaller(), times(0)).verifyException(null);
}
Also used : PreparedStatementExecutor(io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Aggregations

PreparedStatementExecutor (io.shardingjdbc.core.executor.type.prepared.PreparedStatementExecutor)16 Test (org.junit.Test)15 Connection (java.sql.Connection)14 PreparedStatement (java.sql.PreparedStatement)14 SQLException (java.sql.SQLException)6 ResultSet (java.sql.ResultSet)4 BatchPreparedStatementExecutor (io.shardingjdbc.core.executor.type.batch.BatchPreparedStatementExecutor)1 BatchPreparedStatementUnit (io.shardingjdbc.core.executor.type.batch.BatchPreparedStatementUnit)1 PreparedStatementUnit (io.shardingjdbc.core.executor.type.prepared.PreparedStatementUnit)1 GeneratedKeysResultSet (io.shardingjdbc.core.jdbc.core.resultset.GeneratedKeysResultSet)1 ShardingResultSet (io.shardingjdbc.core.jdbc.core.resultset.ShardingResultSet)1 JDBCQueryResult (io.shardingjdbc.core.merger.JDBCQueryResult)1 MergeEngine (io.shardingjdbc.core.merger.MergeEngine)1 QueryResult (io.shardingjdbc.core.merger.QueryResult)1 ArrayList (java.util.ArrayList)1