Search in sources :

Example 1 with JdbcStatement

use of com.mysql.cj.jdbc.JdbcStatement in project ABC by RuiPinto96274.

the class StatementRegressionTest method testBug33823.

@Test
public void testBug33823() throws Exception {
    ResultSetInternalMethods resultSetInternalMethods = new ResultSetInternalMethods() {

        public void clearNextResultset() {
        }

        public char getFirstCharOfQuery() {
            return 0;
        }

        public ResultSetInternalMethods getNextResultset() {
            return null;
        }

        public Object getObjectStoredProc(int columnIndex, int desiredSqlType) throws SQLException {
            return null;
        }

        public Object getObjectStoredProc(int i, Map<Object, Object> map, int desiredSqlType) throws SQLException {
            return null;
        }

        public Object getObjectStoredProc(String columnName, int desiredSqlType) throws SQLException {
            return null;
        }

        public Object getObjectStoredProc(String colName, Map<Object, Object> map, int desiredSqlType) throws SQLException {
            return null;
        }

        public String getServerInfo() {
            return null;
        }

        public long getUpdateCount() {
            return 0;
        }

        public long getUpdateID() {
            return 0;
        }

        public void initializeWithMetadata() throws SQLException {
        }

        public void populateCachedMetaData(CachedResultSetMetaData cachedMetaData) throws SQLException {
        }

        public void realClose(boolean calledExplicitly) throws SQLException {
        }

        public boolean isClosed() {
            return false;
        }

        public boolean hasRows() {
            return false;
        }

        public void setFirstCharOfQuery(char firstCharUpperCase) {
        }

        public void setOwningStatement(JdbcStatement owningStatement) {
        }

        public void setStatementUsedForFetchingRows(JdbcPreparedStatement stmt) {
        }

        public void setWrapperStatement(Statement wrapperStatement) {
        }

        public boolean absolute(int row) throws SQLException {
            return false;
        }

        public void afterLast() throws SQLException {
        }

        public void beforeFirst() throws SQLException {
        }

        public void cancelRowUpdates() throws SQLException {
        }

        public void clearWarnings() throws SQLException {
        }

        public void close() throws SQLException {
        }

        public void deleteRow() throws SQLException {
        }

        public int findColumn(String columnName) throws SQLException {
            return 0;
        }

        public boolean first() throws SQLException {
            return false;
        }

        public Array getArray(int i) throws SQLException {
            return null;
        }

        public Array getArray(String colName) throws SQLException {
            return null;
        }

        public InputStream getAsciiStream(int columnIndex) throws SQLException {
            return null;
        }

        public InputStream getAsciiStream(String columnName) throws SQLException {
            return null;
        }

        public BigDecimal getBigDecimal(int columnIndex) throws SQLException {
            return null;
        }

        public BigDecimal getBigDecimal(String columnName) throws SQLException {
            return null;
        }

        @Deprecated
        public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {
            return null;
        }

        @Deprecated
        public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {
            return null;
        }

        public InputStream getBinaryStream(int columnIndex) throws SQLException {
            return null;
        }

        public InputStream getBinaryStream(String columnName) throws SQLException {
            return null;
        }

        public Blob getBlob(int i) throws SQLException {
            return null;
        }

        public Blob getBlob(String colName) throws SQLException {
            return null;
        }

        public boolean getBoolean(int columnIndex) throws SQLException {
            return false;
        }

        public boolean getBoolean(String columnName) throws SQLException {
            return false;
        }

        public byte getByte(int columnIndex) throws SQLException {
            return 0;
        }

        public byte getByte(String columnName) throws SQLException {
            return 0;
        }

        public byte[] getBytes(int columnIndex) throws SQLException {
            return null;
        }

        public byte[] getBytes(String columnName) throws SQLException {
            return null;
        }

        public Reader getCharacterStream(int columnIndex) throws SQLException {
            return null;
        }

        public Reader getCharacterStream(String columnName) throws SQLException {
            return null;
        }

        public Clob getClob(int i) throws SQLException {
            return null;
        }

        public Clob getClob(String colName) throws SQLException {
            return null;
        }

        public int getConcurrency() throws SQLException {
            return 0;
        }

        public String getCursorName() throws SQLException {
            return null;
        }

        public Date getDate(int columnIndex) throws SQLException {
            return null;
        }

        public Date getDate(String columnName) throws SQLException {
            return null;
        }

        public Date getDate(int columnIndex, Calendar cal) throws SQLException {
            return null;
        }

        public Date getDate(String columnName, Calendar cal) throws SQLException {
            return null;
        }

        public double getDouble(int columnIndex) throws SQLException {
            return 0;
        }

        public double getDouble(String columnName) throws SQLException {
            return 0;
        }

        public int getFetchDirection() throws SQLException {
            return 0;
        }

        public int getFetchSize() throws SQLException {
            return 0;
        }

        public float getFloat(int columnIndex) throws SQLException {
            return 0;
        }

        public float getFloat(String columnName) throws SQLException {
            return 0;
        }

        public int getInt(int columnIndex) throws SQLException {
            return 0;
        }

        public int getInt(String columnName) throws SQLException {
            return 0;
        }

        public long getLong(int columnIndex) throws SQLException {
            return 0;
        }

        public long getLong(String columnName) throws SQLException {
            return 0;
        }

        public ResultSetMetaData getMetaData() throws SQLException {
            return null;
        }

        public Object getObject(int columnIndex) throws SQLException {
            return null;
        }

        public Object getObject(String columnName) throws SQLException {
            return null;
        }

        public Object getObject(int arg0, Map<String, Class<?>> arg1) throws SQLException {
            return null;
        }

        public Object getObject(String arg0, Map<String, Class<?>> arg1) throws SQLException {
            return null;
        }

        public Ref getRef(int i) throws SQLException {
            return null;
        }

        public Ref getRef(String colName) throws SQLException {
            return null;
        }

        public int getRow() throws SQLException {
            return 0;
        }

        public short getShort(int columnIndex) throws SQLException {
            return 0;
        }

        public short getShort(String columnName) throws SQLException {
            return 0;
        }

        public Statement getStatement() throws SQLException {
            return null;
        }

        public String getString(int columnIndex) throws SQLException {
            return null;
        }

        public String getString(String columnName) throws SQLException {
            return null;
        }

        public Time getTime(int columnIndex) throws SQLException {
            return null;
        }

        public Time getTime(String columnName) throws SQLException {
            return null;
        }

        public Time getTime(int columnIndex, Calendar cal) throws SQLException {
            return null;
        }

        public Time getTime(String columnName, Calendar cal) throws SQLException {
            return null;
        }

        public Timestamp getTimestamp(int columnIndex) throws SQLException {
            return null;
        }

        public Timestamp getTimestamp(String columnName) throws SQLException {
            return null;
        }

        public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {
            return null;
        }

        public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException {
            return null;
        }

        public int getType() throws SQLException {
            return 0;
        }

        public URL getURL(int columnIndex) throws SQLException {
            return null;
        }

        public URL getURL(String columnName) throws SQLException {
            return null;
        }

        @Deprecated
        public InputStream getUnicodeStream(int columnIndex) throws SQLException {
            return null;
        }

        @Deprecated
        public InputStream getUnicodeStream(String columnName) throws SQLException {
            return null;
        }

        public SQLWarning getWarnings() throws SQLException {
            return null;
        }

        public void insertRow() throws SQLException {
        }

        public boolean isAfterLast() throws SQLException {
            return false;
        }

        public boolean isBeforeFirst() throws SQLException {
            return false;
        }

        public boolean isFirst() throws SQLException {
            return false;
        }

        public boolean isLast() throws SQLException {
            return false;
        }

        public boolean last() throws SQLException {
            return false;
        }

        public void moveToCurrentRow() throws SQLException {
        }

        public void moveToInsertRow() throws SQLException {
        }

        public boolean next() throws SQLException {
            return false;
        }

        public boolean previous() throws SQLException {
            return false;
        }

        public void refreshRow() throws SQLException {
        }

        public boolean relative(int rows) throws SQLException {
            return false;
        }

        public boolean rowDeleted() throws SQLException {
            return false;
        }

        public boolean rowInserted() throws SQLException {
            return false;
        }

        public boolean rowUpdated() throws SQLException {
            return false;
        }

        public void setFetchDirection(int direction) throws SQLException {
        }

        public void setFetchSize(int rows) throws SQLException {
        }

        public void updateArray(int columnIndex, Array x) throws SQLException {
        }

        public void updateArray(String columnName, Array x) throws SQLException {
        }

        public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException {
        }

        public void updateAsciiStream(String columnName, InputStream x, int length) throws SQLException {
        }

        public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException {
        }

        public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException {
        }

        public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException {
        }

        public void updateBinaryStream(String columnName, InputStream x, int length) throws SQLException {
        }

        public void updateBlob(int columnIndex, Blob x) throws SQLException {
        }

        public void updateBlob(String columnName, Blob x) throws SQLException {
        }

        public void updateBoolean(int columnIndex, boolean x) throws SQLException {
        }

        public void updateBoolean(String columnName, boolean x) throws SQLException {
        }

        public void updateByte(int columnIndex, byte x) throws SQLException {
        }

        public void updateByte(String columnName, byte x) throws SQLException {
        }

        public void updateBytes(int columnIndex, byte[] x) throws SQLException {
        }

        public void updateBytes(String columnName, byte[] x) throws SQLException {
        }

        public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException {
        }

        public void updateCharacterStream(String columnName, Reader reader, int length) throws SQLException {
        }

        public void updateClob(int columnIndex, Clob x) throws SQLException {
        }

        public void updateClob(String columnName, Clob x) throws SQLException {
        }

        public void updateDate(int columnIndex, Date x) throws SQLException {
        }

        public void updateDate(String columnName, Date x) throws SQLException {
        }

        public void updateDouble(int columnIndex, double x) throws SQLException {
        }

        public void updateDouble(String columnName, double x) throws SQLException {
        }

        public void updateFloat(int columnIndex, float x) throws SQLException {
        }

        public void updateFloat(String columnName, float x) throws SQLException {
        }

        public void updateInt(int columnIndex, int x) throws SQLException {
        }

        public void updateInt(String columnName, int x) throws SQLException {
        }

        public void updateLong(int columnIndex, long x) throws SQLException {
        }

        public void updateLong(String columnName, long x) throws SQLException {
        }

        public void updateNull(int columnIndex) throws SQLException {
        }

        public void updateNull(String columnName) throws SQLException {
        }

        public void updateObject(int columnIndex, Object x) throws SQLException {
        }

        public void updateObject(String columnName, Object x) throws SQLException {
        }

        public void updateObject(int columnIndex, Object x, int scale) throws SQLException {
        }

        public void updateObject(String columnName, Object x, int scale) throws SQLException {
        }

        public void updateRef(int columnIndex, Ref x) throws SQLException {
        }

        public void updateRef(String columnName, Ref x) throws SQLException {
        }

        public void updateRow() throws SQLException {
        }

        public void updateShort(int columnIndex, short x) throws SQLException {
        }

        public void updateShort(String columnName, short x) throws SQLException {
        }

        public void updateString(int columnIndex, String x) throws SQLException {
        }

        public void updateString(String columnName, String x) throws SQLException {
        }

        public void updateTime(int columnIndex, Time x) throws SQLException {
        }

        public void updateTime(String columnName, Time x) throws SQLException {
        }

        public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException {
        }

        public void updateTimestamp(String columnName, Timestamp x) throws SQLException {
        }

        public boolean wasNull() throws SQLException {
            return false;
        }

        public RowId getRowId(int columnIndex) throws SQLException {
            return null;
        }

        public RowId getRowId(String columnLabel) throws SQLException {
            return null;
        }

        public void updateRowId(int columnIndex, RowId x) throws SQLException {
        }

        public void updateRowId(String columnLabel, RowId x) throws SQLException {
        }

        public int getHoldability() throws SQLException {
            return 0;
        }

        public void updateNString(int columnIndex, String nString) throws SQLException {
        }

        public void updateNString(String columnLabel, String nString) throws SQLException {
        }

        public void updateNClob(int columnIndex, NClob nClob) throws SQLException {
        }

        public void updateNClob(String columnLabel, NClob nClob) throws SQLException {
        }

        public NClob getNClob(int columnIndex) throws SQLException {
            return null;
        }

        public NClob getNClob(String columnLabel) throws SQLException {
            return null;
        }

        public SQLXML getSQLXML(int columnIndex) throws SQLException {
            return null;
        }

        public SQLXML getSQLXML(String columnLabel) throws SQLException {
            return null;
        }

        public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException {
        }

        public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException {
        }

        public String getNString(int columnIndex) throws SQLException {
            return null;
        }

        public String getNString(String columnLabel) throws SQLException {
            return null;
        }

        public Reader getNCharacterStream(int columnIndex) throws SQLException {
            return null;
        }

        public Reader getNCharacterStream(String columnLabel) throws SQLException {
            return null;
        }

        public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException {
        }

        public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException {
        }

        public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException {
        }

        public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException {
        }

        public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException {
        }

        public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException {
        }

        public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException {
        }

        public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException {
        }

        public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException {
        }

        public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException {
        }

        public void updateClob(int columnIndex, Reader reader, long length) throws SQLException {
        }

        public void updateClob(String columnLabel, Reader reader, long length) throws SQLException {
        }

        public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException {
        }

        public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException {
        }

        public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException {
        }

        public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException {
        }

        public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException {
        }

        public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException {
        }

        public void updateCharacterStream(int columnIndex, Reader x) throws SQLException {
        }

        public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException {
        }

        public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException {
        }

        public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException {
        }

        public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException {
        }

        public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException {
        }

        public void updateClob(int columnIndex, Reader reader) throws SQLException {
        }

        public void updateClob(String columnLabel, Reader reader) throws SQLException {
        }

        public void updateNClob(int columnIndex, Reader reader) throws SQLException {
        }

        public void updateNClob(String columnLabel, Reader reader) throws SQLException {
        }

        public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {
            return null;
        }

        public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {
            return null;
        }

        public <T> T unwrap(Class<T> iface) throws SQLException {
            return null;
        }

        public boolean isWrapperFor(Class<?> iface) throws SQLException {
            return false;
        }

        @Override
        public BigInteger getBigInteger(int columnIndex) throws SQLException {
            return null;
        }

        @Override
        public void closeOwner(boolean calledExplicitly) {
        }

        @Override
        public MysqlConnection getConnection() {
            return null;
        }

        @Override
        public Session getSession() {
            return null;
        }

        @Override
        public String getPointOfOrigin() {
            return null;
        }

        @Override
        public int getOwnerFetchSize() {
            return 0;
        }

        @Override
        public Query getOwningQuery() {
            return null;
        }

        @Override
        public int getOwningStatementMaxRows() {
            return 0;
        }

        @Override
        public int getOwningStatementFetchSize() {
            return 0;
        }

        @Override
        public long getOwningStatementServerId() {
            return 0;
        }

        @Override
        public int getResultId() {
            return 0;
        }

        @Override
        public void initRowsWithMetadata() {
        }

        @Override
        public ColumnDefinition getColumnDefinition() {
            return null;
        }

        @Override
        public void setColumnDefinition(ColumnDefinition metadata) {
        }

        @Override
        public void setNextResultset(Resultset nextResultset) {
        }

        @Override
        public ResultsetRows getRows() {
            return null;
        }

        @Override
        public Object getSyncMutex() {
            return null;
        }
    };
    resultSetInternalMethods.close();
}
Also used : NClob(java.sql.NClob) RowId(java.sql.RowId) CharArrayReader(java.io.CharArrayReader) Reader(java.io.Reader) StringReader(java.io.StringReader) LocalDateTime(java.time.LocalDateTime) Time(java.sql.Time) LocalTime(java.time.LocalTime) Timestamp(java.sql.Timestamp) ResultSetInternalMethods(com.mysql.cj.jdbc.result.ResultSetInternalMethods) CachedResultSetMetaData(com.mysql.cj.jdbc.result.CachedResultSetMetaData) JdbcPreparedStatement(com.mysql.cj.jdbc.JdbcPreparedStatement) SerialBlob(javax.sql.rowset.serial.SerialBlob) Blob(java.sql.Blob) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) JdbcPreparedStatement(com.mysql.cj.jdbc.JdbcPreparedStatement) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) CallableStatement(java.sql.CallableStatement) ServerPreparedStatement(com.mysql.cj.jdbc.ServerPreparedStatement) ClientPreparedStatement(com.mysql.cj.jdbc.ClientPreparedStatement) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) GregorianCalendar(java.util.GregorianCalendar) Calendar(java.util.Calendar) BigDecimal(java.math.BigDecimal) LocalDate(java.time.LocalDate) Date(java.sql.Date) ColumnDefinition(com.mysql.cj.protocol.ColumnDefinition) Array(java.sql.Array) Ref(java.sql.Ref) SQLXML(java.sql.SQLXML) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) Resultset(com.mysql.cj.protocol.Resultset) NClob(java.sql.NClob) Clob(java.sql.Clob) Map(java.util.Map) StatementsTest(testsuite.simple.StatementsTest) Test(org.junit.jupiter.api.Test)

Example 2 with JdbcStatement

use of com.mysql.cj.jdbc.JdbcStatement in project ABC by RuiPinto96274.

the class UtilsTest method testIsJdbcInterface.

/**
 * Tests Util.isJdbcInterface()
 */
@Test
public void testIsJdbcInterface() {
    // Classes directly or indirectly implementing JDBC interfaces.
    assertTrue(Util.isJdbcInterface(ClientPreparedStatement.class));
    assertTrue(Util.isJdbcInterface(StatementImpl.class));
    assertTrue(Util.isJdbcInterface(JdbcStatement.class));
    assertTrue(Util.isJdbcInterface(ResultSetImpl.class));
    JdbcStatement s = (JdbcStatement) Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class<?>[] { JdbcStatement.class }, new InvocationHandler() {

        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            return null;
        }
    });
    assertTrue(Util.isJdbcInterface(s.getClass()));
    // Classes not implementing JDBC interfaces.
    assertFalse(Util.isJdbcInterface(Util.class));
    assertFalse(Util.isJdbcInterface(UtilsTest.class));
}
Also used : ClientPreparedStatement(com.mysql.cj.jdbc.ClientPreparedStatement) ResultSetImpl(com.mysql.cj.jdbc.result.ResultSetImpl) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) StatementImpl(com.mysql.cj.jdbc.StatementImpl) Util(com.mysql.cj.util.Util) Method(java.lang.reflect.Method) InvocationHandler(java.lang.reflect.InvocationHandler) Test(org.junit.jupiter.api.Test)

Example 3 with JdbcStatement

use of com.mysql.cj.jdbc.JdbcStatement in project ABC by RuiPinto96274.

the class QueryAttributesTest method preserveAndClearAttributesInPlainStatement.

/**
 * Tests if query attributes are preserved between plain statement executions and cleared after calling the 'clearAttributes' method.
 *
 * @throws Exception
 */
@Test
public void preserveAndClearAttributesInPlainStatement() throws Exception {
    Statement testStmt = this.conn.createStatement();
    assertTrue(JdbcStatement.class.isInstance(testStmt));
    JdbcStatement testJdbcStmt = (JdbcStatement) testStmt;
    testJdbcStmt.setAttribute("qa", "8.0.26");
    for (int c = 0; c < 2; c++) {
        this.rs = testStmt.executeQuery("SELECT 'MySQL Connector/J', mysql_query_attribute_string('qa') AS qa");
        assertTrue(this.rs.next());
        assertEquals("MySQL Connector/J", this.rs.getString(1));
        assertEquals("8.0.26", this.rs.getString("qa"));
        assertFalse(this.rs.next());
    }
    // Execute twice. Query Attributes must be preserved.
    testJdbcStmt.clearAttributes();
    this.rs = testStmt.executeQuery("SELECT 'MySQL Connector/J', mysql_query_attribute_string('qa') AS qa");
    assertTrue(this.rs.next());
    assertEquals("MySQL Connector/J", this.rs.getString(1));
    assertNull(this.rs.getString("qa"));
    assertTrue(this.rs.wasNull());
    assertFalse(this.rs.next());
}
Also used : JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Test(org.junit.jupiter.api.Test)

Example 4 with JdbcStatement

use of com.mysql.cj.jdbc.JdbcStatement in project ABC by RuiPinto96274.

the class QueryAttributesTest method plainStatementWithQueryAttributesInMultiHost.

/**
 * Tests whether proxied plain statement objects created in multi-host connections handle query attributes correctly.
 *
 * @throws Exception
 */
@Test
void plainStatementWithQueryAttributesInMultiHost() throws Exception {
    // Failover connection.
    Connection testConn = getFailoverConnection();
    Statement testStmt = testConn.createStatement();
    assertTrue(JdbcStatement.class.isInstance(testStmt));
    JdbcStatement testJdbcStmt = (JdbcStatement) testStmt;
    testJdbcStmt.setAttribute("qa", "MySQL Connector/J");
    this.rs = testStmt.executeQuery("SELECT mysql_query_attribute_string('qa')");
    assertTrue(this.rs.next());
    assertEquals("MySQL Connector/J", this.rs.getString(1));
    assertFalse(this.rs.next());
    testConn.close();
    // Loadbalanced connection.
    testConn = getLoadBalancedConnection();
    testStmt = testConn.createStatement();
    assertTrue(JdbcStatement.class.isInstance(testStmt));
    testJdbcStmt = (JdbcStatement) testStmt;
    testJdbcStmt.setAttribute("qa", "MySQL Connector/J");
    this.rs = testStmt.executeQuery("SELECT mysql_query_attribute_string('qa')");
    assertTrue(this.rs.next());
    assertEquals("MySQL Connector/J", this.rs.getString(1));
    assertFalse(this.rs.next());
    testConn.close();
    // Replication connection.
    testConn = getSourceReplicaReplicationConnection();
    testStmt = testConn.createStatement();
    assertTrue(JdbcStatement.class.isInstance(testStmt));
    testJdbcStmt = (JdbcStatement) testStmt;
    testJdbcStmt.setAttribute("qa", "MySQL Connector/J");
    this.rs = testStmt.executeQuery("SELECT mysql_query_attribute_string('qa')");
    assertTrue(this.rs.next());
    assertEquals("MySQL Connector/J", this.rs.getString(1));
    assertFalse(this.rs.next());
    testConn.close();
}
Also used : JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Connection(java.sql.Connection) Test(org.junit.jupiter.api.Test)

Example 5 with JdbcStatement

use of com.mysql.cj.jdbc.JdbcStatement in project ABC by RuiPinto96274.

the class QueryAttributesTest method multiQueriesWithAttributesInPlainStatement.

/**
 * Tests if query attributes hold in plain statements with multi-queries.
 *
 * @throws Exception
 */
@Test
public void multiQueriesWithAttributesInPlainStatement() throws Exception {
    Properties props = new Properties();
    props.setProperty(PropertyKey.allowMultiQueries.getKeyName(), "true");
    Connection testConn = getConnectionWithProps(props);
    Statement testStmt = testConn.createStatement();
    assertTrue(JdbcStatement.class.isInstance(testStmt));
    JdbcStatement testJdbcStmt = (JdbcStatement) testStmt;
    testJdbcStmt.setAttribute("qa01", "MySQL Connector/J");
    testJdbcStmt.setAttribute("qa02", "8.0.26");
    this.rs = testStmt.executeQuery("SELECT mysql_query_attribute_string('qa01') AS qa01; SELECT mysql_query_attribute_string('qa02') AS qa02;");
    assertTrue(this.rs.next());
    assertEquals("MySQL Connector/J", this.rs.getString("qa01"));
    assertFalse(this.rs.next());
    assertTrue(testStmt.getMoreResults());
    this.rs = testStmt.getResultSet();
    assertTrue(this.rs.next());
    assertEquals("8.0.26", this.rs.getString("qa02"));
    assertFalse(this.rs.next());
    testConn.close();
}
Also used : JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) JdbcStatement(com.mysql.cj.jdbc.JdbcStatement) PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Connection(java.sql.Connection) Properties(java.util.Properties) Test(org.junit.jupiter.api.Test)

Aggregations

JdbcStatement (com.mysql.cj.jdbc.JdbcStatement)54 Test (org.junit.jupiter.api.Test)54 PreparedStatement (java.sql.PreparedStatement)51 Connection (java.sql.Connection)39 Properties (java.util.Properties)36 Statement (java.sql.Statement)18 BigDecimal (java.math.BigDecimal)15 Time (java.sql.Time)15 Timestamp (java.sql.Timestamp)15 LocalDate (java.time.LocalDate)15 LocalDateTime (java.time.LocalDateTime)15 LocalTime (java.time.LocalTime)15 Calendar (java.util.Calendar)15 BigInteger (java.math.BigInteger)12 SimpleDateFormat (java.text.SimpleDateFormat)12 OffsetDateTime (java.time.OffsetDateTime)12 OffsetTime (java.time.OffsetTime)12 ZonedDateTime (java.time.ZonedDateTime)12 Date (java.util.Date)12 ClientPreparedStatement (com.mysql.cj.jdbc.ClientPreparedStatement)6