Search in sources :

Example 6 with CallableStatement

use of java.sql.CallableStatement in project druid by alibaba.

the class ConnectionProxyImpl method prepareCall.

@Override
public CallableStatement prepareCall(String sql) throws SQLException {
    FilterChainImpl chain = createChain();
    CallableStatement stmt = chain.connection_prepareCall(this, sql);
    recycleFilterChain(chain);
    return stmt;
}
Also used : FilterChainImpl(com.alibaba.druid.filter.FilterChainImpl) CallableStatement(java.sql.CallableStatement)

Example 7 with CallableStatement

use of java.sql.CallableStatement in project druid by alibaba.

the class EncodingConvertFilterTest2 method test_stat.

public void test_stat() throws Exception {
    Assert.assertTrue(dataSource.isInited());
    EncodingConvertFilter filter = (EncodingConvertFilter) dataSource.getProxyFilters().get(0);
    DruidPooledConnection conn = dataSource.getConnection();
    final String PARAM_VALUE = "中国";
    CallableStatement stmt = conn.prepareCall("select ?");
    stmt.setString(1, PARAM_VALUE);
    MockCallableStatement raw = stmt.unwrap(MockCallableStatement.class);
    stmt.execute();
    String param1 = (String) raw.getParameters().get(0);
    String C_TEXT = new String(param1.getBytes(SERVER_ENCODING), CLIENT_ENCODING);
    Assert.assertEquals(PARAM_VALUE, C_TEXT);
    Assert.assertFalse(param1.equals(PARAM_VALUE));
    MyResultSet rawRs = new MyResultSet(raw);
    rawRs.setValue(filter.encode((ConnectionProxy) conn.getConnection(), text));
    raw.getOutParameters().add(rawRs);
    ResultSet rs = (ResultSet) stmt.getObject(1);
    rs.next();
    Assert.assertEquals(text, rs.getString(1));
    Assert.assertEquals(text, rs.getString("1"));
    Assert.assertEquals(text, rs.getObject(1));
    Assert.assertEquals(text, rs.getObject("1"));
    Assert.assertEquals(text, rs.getObject(1, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getObject("1", Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getString(2));
    Assert.assertEquals(text, rs.getString("2"));
    Assert.assertEquals(text, rs.getObject(2));
    Assert.assertEquals(text, rs.getObject("2"));
    Assert.assertEquals(text, rs.getObject(2, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getObject("2", Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getString(3));
    Assert.assertEquals(text, rs.getString("3"));
    Assert.assertEquals(text, rs.getObject(3));
    Assert.assertEquals(text, rs.getObject("3"));
    Assert.assertEquals(text, rs.getObject(3, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getObject("3", Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getString(4));
    Assert.assertEquals(text, rs.getString("4"));
    Assert.assertEquals(text, rs.getObject(4));
    Assert.assertEquals(text, rs.getObject("4"));
    Assert.assertEquals(text, rs.getObject(4, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(text, rs.getObject("4", Collections.<String, Class<?>>emptyMap()));
    stmt.registerOutParameter(2, Types.VARCHAR);
    stmt.registerOutParameter(3, Types.CLOB);
    raw.getOutParameters().add(param1);
    raw.getOutParameters().add(param1);
    Assert.assertEquals(C_TEXT, stmt.getString(4));
    Assert.assertEquals(C_TEXT, stmt.getString("4"));
    Assert.assertEquals(C_TEXT, stmt.getObject(4));
    Assert.assertEquals(C_TEXT, stmt.getObject("4"));
    Assert.assertEquals(C_TEXT, stmt.getObject(4, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(C_TEXT, stmt.getObject("4", Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(C_TEXT, stmt.getString(5));
    Assert.assertEquals(C_TEXT, stmt.getString("5"));
    Assert.assertEquals(C_TEXT, stmt.getObject(5));
    Assert.assertEquals(C_TEXT, stmt.getObject("5"));
    Assert.assertEquals(C_TEXT, stmt.getObject(5, Collections.<String, Class<?>>emptyMap()));
    Assert.assertEquals(C_TEXT, stmt.getObject("5", Collections.<String, Class<?>>emptyMap()));
    stmt.setObject(1, C_TEXT);
    Assert.assertEquals(param1, raw.getParameters().get(0));
    stmt.setObject(2, new StringReader(C_TEXT));
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(1)));
    stmt.setCharacterStream(3, new StringReader(C_TEXT));
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(2)));
    stmt.setCharacterStream(4, new StringReader(C_TEXT), C_TEXT.length());
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(3)));
    stmt.setCharacterStream(5, new StringReader(C_TEXT), (long) C_TEXT.length());
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(4)));
    stmt.setObject(6, C_TEXT, Types.VARCHAR);
    Assert.assertEquals(param1, raw.getParameters().get(5));
    stmt.setObject(7, new StringReader(C_TEXT), Types.VARCHAR);
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(6)));
    stmt.setObject(8, C_TEXT, Types.VARCHAR, 0);
    Assert.assertEquals(param1, raw.getParameters().get(7));
    stmt.setObject(9, new StringReader(C_TEXT), Types.VARCHAR, 0);
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(8)));
    stmt.setObject(10, 1, Types.INTEGER);
    Assert.assertEquals(1, raw.getParameters().get(9));
    stmt.setObject(11, 2, Types.INTEGER, 0);
    Assert.assertEquals(2, raw.getParameters().get(10));
    stmt.setObject(12, 3);
    Assert.assertEquals(3, raw.getParameters().get(11));
    stmt.setObject("13", C_TEXT, Types.VARCHAR);
    Assert.assertEquals(param1, raw.getParameters().get(12));
    stmt.setObject("14", new StringReader(C_TEXT), Types.VARCHAR);
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(13)));
    stmt.setObject("15", C_TEXT, Types.VARCHAR, 0);
    Assert.assertEquals(param1, raw.getParameters().get(14));
    stmt.setObject("16", new StringReader(C_TEXT), Types.VARCHAR, 0);
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(15)));
    stmt.setObject("17", 1, Types.INTEGER);
    Assert.assertEquals(1, raw.getParameters().get(16));
    stmt.setObject("18", 2, Types.INTEGER, 0);
    Assert.assertEquals(2, raw.getParameters().get(17));
    stmt.setObject("19", 3);
    Assert.assertEquals(3, raw.getParameters().get(18));
    stmt.setCharacterStream("20", new StringReader(C_TEXT));
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(19)));
    stmt.setCharacterStream("21", new StringReader(C_TEXT), C_TEXT.length());
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(20)));
    stmt.setCharacterStream("22", new StringReader(C_TEXT), (long) C_TEXT.length());
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(21)));
    stmt.setObject("23", C_TEXT);
    Assert.assertEquals(param1, raw.getParameters().get(22));
    stmt.setObject("24", new StringReader(C_TEXT));
    Assert.assertEquals(param1, Utils.read((Reader) raw.getParameters().get(23)));
    stmt.setObject("25", 1, Types.INTEGER);
    Assert.assertEquals(1, raw.getParameters().get(24));
    stmt.setObject("26", 2, Types.INTEGER, 0);
    Assert.assertEquals(2, raw.getParameters().get(25));
    stmt.setObject("27", 3);
    Assert.assertEquals(3, raw.getParameters().get(26));
    rs.close();
    stmt.close();
    conn.close();
}
Also used : MockCallableStatement(com.alibaba.druid.mock.MockCallableStatement) DruidPooledConnection(com.alibaba.druid.pool.DruidPooledConnection) MockCallableStatement(com.alibaba.druid.mock.MockCallableStatement) CallableStatement(java.sql.CallableStatement) MockResultSet(com.alibaba.druid.mock.MockResultSet) ResultSet(java.sql.ResultSet) StringReader(java.io.StringReader) Reader(java.io.Reader) StringReader(java.io.StringReader) EncodingConvertFilter(com.alibaba.druid.filter.encoding.EncodingConvertFilter) ConnectionProxy(com.alibaba.druid.proxy.jdbc.ConnectionProxy)

Example 8 with CallableStatement

use of java.sql.CallableStatement in project druid by alibaba.

the class FilterChainImplTest2 method test_getCharacterStream.

public void test_getCharacterStream() throws Exception {
    Connection conn = dataSource.getConnection();
    CallableStatement stmt = conn.prepareCall("select ?");
    stmt.registerOutParameter(1, Types.VARCHAR);
    Assert.assertNull(stmt.getCharacterStream(1));
    stmt.close();
    conn.close();
}
Also used : CallableStatement(java.sql.CallableStatement) Connection(java.sql.Connection)

Example 9 with CallableStatement

use of java.sql.CallableStatement in project druid by alibaba.

the class FilterChainImplTest2 method test_getTimestamp_2.

public void test_getTimestamp_2() throws Exception {
    Connection conn = dataSource.getConnection();
    CallableStatement stmt = conn.prepareCall("select ?");
    stmt.registerOutParameter(1, Types.VARCHAR);
    Assert.assertNull(stmt.getTimestamp(1, null));
    stmt.close();
    conn.close();
}
Also used : CallableStatement(java.sql.CallableStatement) Connection(java.sql.Connection)

Example 10 with CallableStatement

use of java.sql.CallableStatement in project druid by alibaba.

the class FilterChainImplTest2 method test_getURL_1.

public void test_getURL_1() throws Exception {
    Connection conn = dataSource.getConnection();
    CallableStatement stmt = conn.prepareCall("select ?");
    stmt.registerOutParameter(1, Types.VARCHAR);
    Assert.assertNull(stmt.getURL("1"));
    stmt.close();
    conn.close();
}
Also used : CallableStatement(java.sql.CallableStatement) Connection(java.sql.Connection)

Aggregations

CallableStatement (java.sql.CallableStatement)259 SQLException (java.sql.SQLException)131 Connection (java.sql.Connection)123 ResultSet (java.sql.ResultSet)54 DatabaseAccessException (com.axway.ats.log.autodb.exceptions.DatabaseAccessException)45 DbConnection (com.axway.ats.core.dbaccess.DbConnection)28 Checkpoint (com.axway.ats.log.autodb.entities.Checkpoint)22 PreparedStatement (java.sql.PreparedStatement)21 ArrayList (java.util.ArrayList)21 CouldntSaveDataException (com.google.security.zynamics.binnavi.Database.Exceptions.CouldntSaveDataException)20 Timestamp (java.sql.Timestamp)18 Test (org.junit.Test)16 CouldntDeleteException (com.google.security.zynamics.binnavi.Database.Exceptions.CouldntDeleteException)15 Statement (java.sql.Statement)13 CConnection (com.google.security.zynamics.binnavi.Database.CConnection)8 HashMap (java.util.HashMap)8 MockCallableStatement (com.alibaba.druid.mock.MockCallableStatement)7 MaybeNullException (com.google.security.zynamics.binnavi.Exceptions.MaybeNullException)6 OracleCallableStatement (oracle.jdbc.OracleCallableStatement)6 Session (org.hibernate.Session)6