微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.sql.ParameterMetaData的实例源码

项目:Equella    文件SimpleTypeQuery.java   
@Override
public IParameterMetaData getParameterMetadata(String query,List<Object> params) throws OdaException
{
    MetadataBean bean = new MetadataBean();
    int paramcount = 1;
    String[] queryStrings = getQueryStrings(query,null);
    for( String queryString : queryStrings )
    {
        int sz = queryString.length();
        for( int i = 0; i < sz; i++ )
        {
            char c = queryString.charat(i);
            if( c == '?' )
            {
                DeFinition deFinition = addColumn("param" + (paramcount++),TYPE_STRING,bean); //$NON-NLS-1$
                deFinition.setMode(ParameterMetaData.parameterModeIn);
            }
        }
    }
    return bean;
}
项目:calcite-avatica    文件JdbcMeta.java   
/**
 * Converts from JDBC Metadata to Avatica parameters
 */
protected static List<AvaticaParameter> parameters(ParameterMetaData MetaData)
    throws sqlException {
  if (MetaData == null) {
    return Collections.emptyList();
  }
  final List<AvaticaParameter> params = new ArrayList<>();
  for (int i = 1; i <= MetaData.getParameterCount(); i++) {
    params.add(
        new AvaticaParameter(MetaData.isSigned(i),MetaData.getPrecision(i),MetaData.getScale(i),MetaData.getParameterType(i),MetaData.getParameterTypeName(i),MetaData.getParameterClassName(i),"?" + i));
  }
  return params;
}
项目:calcite-avatica    文件RemoteDriverTest.java   
@Test public void testPrepareBindExecuteFetchVarbinary() throws Exception {
  ConnectionSpec.getDatabaseLock().lock();
  try {
    final Connection connection = getLocalConnection();
    final String sql = "select x'de' || ? as c from (values (1,'a'))";
    final PreparedStatement ps =
        connection.prepareStatement(sql);
    final ParameterMetaData parameterMetaData = ps.getParameterMetaData();
    assertthat(parameterMetaData.getParameterCount(),equalTo(1));

    ps.setBytes(1,new byte[]{65,66});
    final ResultSet resultSet = ps.executeQuery();
    assertTrue(resultSet.next());
    assertthat(resultSet.getBytes(1),equalTo(new byte[]{(byte) 0xDE,65,66}));
    resultSet.close();
    ps.close();
    connection.close();
  } finally {
    ConnectionSpec.getDatabaseLock().unlock();
  }
}
项目:Thriftypaxos    文件JdbcPreparedStatement.java   
/**
 * Get the parameter Meta data of this prepared statement.
 *
 * @return the Meta data
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        int id = getNextId(TraceObject.ParaMETER_Meta_DATA);
        if (isDebugEnabled()) {
            debugCodeAssign("ParameterMetaData",TraceObject.ParaMETER_Meta_DATA,id,"getParameterMetaData()");
        }
        checkClosed();
        JdbcParameterMetaData Meta = new JdbcParameterMetaData(
                session.getTrace(),this,command,id);
        return Meta;
    } catch (Exception e) {
        throw logAndConvert(e);
    }
}
项目:Thriftypaxos    文件PgServerThread.java   
private void sendParameterDescription(Prepared p) throws IOException {
    try {
        PreparedStatement prep = p.prep;
        ParameterMetaData Meta = prep.getParameterMetaData();
        int count = Meta.getParameterCount();
        startMessage('t');
        writeShort(count);
        for (int i = 0; i < count; i++) {
            int type;
            if (p.paramType != null && p.paramType[i] != 0) {
                type = p.paramType[i];
            } else {
                type = PgServer.PG_TYPE_VARCHAR;
            }
            server.checkType(type);
            writeInt(type);
        }
        sendMessage();
    } catch (Exception e) {
        sendErrorResponse(e);
    }
}
项目:spring4-understanding    文件StatementCreatorUtilsTests.java   
@Test
public void testSetParameterValueWithNullAndGetParameterTypeWorkingButNotForOtherDriver() throws sqlException {
    StatementCreatorUtils.driversWithNoSupportForGetParameterType.clear();
    StatementCreatorUtils.driversWithNoSupportForGetParameterType.add("Oracle JDBC Driver");
    Connection con = mock(Connection.class);
    DatabaseMetaData dbmd = mock(DatabaseMetaData.class);
    ParameterMetaData pmd = mock(ParameterMetaData.class);
    given(preparedStatement.getConnection()).willReturn(con);
    given(con.getMetaData()).willReturn(dbmd);
    given(dbmd.getDriverName()).willReturn("Apache Derby Embedded Driver");
    given(preparedStatement.getParameterMetaData()).willReturn(pmd);
    given(pmd.getParameterType(1)).willReturn(Types.SMALLINT);
    StatementCreatorUtils.setParameterValue(preparedStatement,1,sqlTypeValue.TYPE_UNKNowN,null,null);
    verify(dbmd).getDriverName();
    verify(pmd).getParameterType(1);
    verify(preparedStatement).setNull(1,Types.SMALLINT);
    assertEquals(1,StatementCreatorUtils.driversWithNoSupportForGetParameterType.size());
}
项目:gemfirexd-oss    文件ParameterMetaDataJdbc30Test.java   
/** 
         * test execute statements that no parameters would be returned if 
         * prepareStatement("execute statement systab using values('SYS%','8000001%')");
  *
  * @exception sqlException if error occurs
         */

public void testExecuteStatementUsing () throws sqlException {

    /*
     * the test no longer tests 4552,but kept as an interesting test scenario
                * bug 4552 - no parameters would be returned for execute statement using
                * System.out.println("Bug 4552 - no parameters would be returned for execute statement using");
                * orig: ps = con.prepareStatement("execute statement systab using values('SYS%','8000001%')");
     */
            PreparedStatement ps = prepareStatement("select * from sys.systables " + 
                        "where CAST(tablename AS VARCHAR(128)) like 'SYS%' and " + 
                        "CAST(tableID AS VARCHAR(128)) like '8000001%'");

            ParameterMetaData paramMetaData = ps.getParameterMetaData();
    assertEquals("Unexpected parameter count",paramMetaData.getParameterCount());

    //expected values to be stored in a 2dim. array
               String parameterMetaDataArray0 [][] = null;

               testParameterMetaData(paramMetaData,parameterMetaDataArray0);

            ps.execute();

    ps.close();
}
项目:gemfirexd-oss    文件ParameterMetaDataJdbc30Test.java   
/**
        * tests parameterMetaData and reports error if the ParameterMetaData results
 * does not match the expected results.
        *
        * @param paramMetaData ParameterMetadata object
 * @param paramMetaDataArray 2 dimensional array containing expected test results. 
 * @exception sqlException if any error occurs
        */
static void testParameterMetaData(ParameterMetaData paramMetaData,String [][] paramMetaDataArray) throws sqlException {
    int numParam = paramMetaData.getParameterCount();

    for (int i=0,j=0; i<numParam; i++) {   
                        assertEquals("Unexpected parameter isNullable",paramMetaDataArray[i][j++],parameterIsNullableInStringForm(paramMetaData.isNullable(i+1)));
                        assertEquals("Unexpected parameter isSigned",Boolean.valueOf(paramMetaDataArray[i][j++]).booleanValue(),paramMetaData.isSigned(i+1));
                        assertEquals("Unexpected parameter getPrecision",Integer.parseInt(paramMetaDataArray[i][j++]),paramMetaData.getPrecision(i+1));
                        assertEquals("Unexpected parameter getScale",paramMetaData.getScale(i+1));
                        assertEquals("Unexpected parameter getParameterType",paramMetaData.getParameterType(i+1));
                        assertEquals("Unexpected parameter getParameterTypeName",paramMetaData.getParameterTypeName(i+1));
                        assertEquals("Unexpected parameter getParameterClassName",paramMetaData.getParameterClassName(i+1));
                        assertEquals("Unexpected parameter getParameterMode",parameterModeInStringForm(paramMetaData.getParameterMode(i+1)));

        j=0;
    }
}
项目:gemfirexd-oss    文件UDTTest.java   
/**
 * Check the ParameterMetaData for a statement whose first parameter is a UDT.
 */
private void checkPMD
    (
     Connection conn,String query,String expectedClassName,int expectedJDBCType,String expectedsqlTypeName,int expectedPrecision,int expectedScale
     ) throws Exception
{
    PreparedStatement ps = conn.prepareStatement( query );
    ParameterMetaData pmd = ps.getParameterMetaData();

    assertEquals( pmd.getParameterClassName( 1 ),expectedClassName );
    assertEquals( pmd.getParameterType( 1 ),expectedJDBCType );
    assertEquals( pmd.getParameterTypeName( 1 ),expectedsqlTypeName );
    assertEquals( pmd.getPrecision( 1 ),expectedPrecision );
    assertEquals( pmd.getScale( 1 ),expectedScale );

    ps.close();
}
项目:gemfirexd-oss    文件OffsetFetchNextTest.java   
/**
 * Test dynamic arguments
 */
public void testDynamicArgsMetaData() throws sqlException {

    //since there is no getParameterMetaData() call available in JSR169 
    //implementations,do not run this test if we are running JSR169
    if (JDBC.vmSupportsJSR169()) return;

    PreparedStatement ps = prepareStatement(
        "select * from t1 where a = ? order by b " +
        "offset ? rows fetch next ? rows only");

    ParameterMetaData pmd = ps.getParameterMetaData();
    int[] expectedTypes = { Types.INTEGER,Types.BIGINT,Types.BIGINT };

    for (int i = 0; i < 3; i++) {
        assertEquals("Unexpected parameter type",expectedTypes[i],pmd.getParameterType(i+1));
        assertEquals("Derby ? args are nullable",// Why is that? Cf. logic in ParameterNode.setType
                     ParameterMetaData.parameterNullable,pmd.isNullable(i+1));
    }
    ps.close();
}
项目:gemfirexd-oss    文件DRDAConnThread.java   
private void writesqlDOPTGRP(ResultSetMetaData rsMeta,ParameterMetaData pMeta,int jdbcelemNum,boolean rtnOutput)
    throws DRDAProtocolException,sqlException
{

    writer.writeByte(0);
    //sqlUNAMED
    writer.writeShort(0);
    //sqlName
    writeVCMorVCS(rtnOutput ? rsMeta.getColumnName(jdbcelemNum) : null);
    //sqlLabel
    writeVCMorVCS(null);
    //sqlComments
    writeVCMorVCS(null);
    //sqlDUDTGRP 
    writesqlUDTGRP(rsMeta,pMeta,jdbcelemNum,rtnOutput);
    //sqlDXGRP
    writesqlDXGRP(rsMeta,rtnOutput);
}
项目:dataforms    文件sqlParser.java   
/**
 * statementにパラメータを設定します。
 * @param st ステートメント。
 * @param param パラメータ。
 * @throws Exception 例外。
 */
public void setParameter(final PreparedStatement st,final  Map<String,Object> param) throws Exception {
    if (this.paramnames != null && param != null) {
        int idx = 1;
        ParameterMetaData Meta = getParameterMetaData(st);
        for (String p : this.paramnames) {
            Object v = this.getParam(p,param);
            if (log.isDebugEnabled()) {
                log.debug(idx + " :" + p + "=" + v);
            }
            if (v == null) {
                st.setNull(idx,this.getParameterType(Meta,idx));
            } else {
                if (v instanceof FileObject) {
                    log.debug("valueClass=" + v.getClass().getName());
                    this.setBlobData(st,idx,(FileObject) v,Meta);
                } else {
                    st.setobject(idx,v);
                }
            }
            idx++;
        }
    }
}
项目:the-vigilantes    文件ConnectionTest.java   
private void testInterfaceImplementation(Connection conntocheck) throws Exception {
    Method[] dbmdMethods = java.sql.DatabaseMetaData.class.getmethods();

    // can't do this statically,as we return different
    // implementations depending on JDBC version
    DatabaseMetaData dbmd = conntocheck.getMetaData();

    checkInterfaceImplemented(dbmdMethods,dbmd.getClass(),dbmd);

    Statement stmttocheck = conntocheck.createStatement();

    checkInterfaceImplemented(java.sql.Statement.class.getmethods(),stmttocheck.getClass(),stmttocheck);

    PreparedStatement pStmttocheck = conntocheck.prepareStatement("SELECT 1");
    ParameterMetaData paramMd = pStmttocheck.getParameterMetaData();

    checkInterfaceImplemented(java.sql.PreparedStatement.class.getmethods(),pStmttocheck.getClass(),pStmttocheck);
    checkInterfaceImplemented(java.sql.ParameterMetaData.class.getmethods(),paramMd.getClass(),paramMd);

    pStmttocheck = ((com.MysqL.jdbc.Connection) conntocheck).serverPrepareStatement("SELECT 1");

    checkInterfaceImplemented(java.sql.PreparedStatement.class.getmethods(),pStmttocheck);
    ResultSet tocheckRs = conntocheck.createStatement().executeQuery("SELECT 1");
    checkInterfaceImplemented(java.sql.ResultSet.class.getmethods(),tocheckRs.getClass(),tocheckRs);
    tocheckRs = conntocheck.createStatement().executeQuery("SELECT 1");
    checkInterfaceImplemented(java.sql.ResultSetMetaData.class.getmethods(),tocheckRs.getMetaData().getClass(),tocheckRs.getMetaData());

    if (versionMeetsMinimum(5,0)) {
        createProcedure("interfaceImpl","(IN p1 INT)\nBEGIN\nSELECT 1;\nEND");

        CallableStatement cstmt = conntocheck.prepareCall("{CALL interfaceImpl(?)}");

        checkInterfaceImplemented(java.sql.CallableStatement.class.getmethods(),cstmt.getClass(),cstmt);
    }
    checkInterfaceImplemented(java.sql.Connection.class.getmethods(),conntocheck.getClass(),conntocheck);
}
项目:the-vigilantes    文件ServerPreparedStatement.java   
/**
 * @see java.sql.PreparedStatement#getParameterMetaData()
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {

        if (this.parameterMetaData == null) {
            this.parameterMetaData = new MysqLParameterMetadata(this.parameterFields,this.parameterCount,getExceptionInterceptor());
        }

        return this.parameterMetaData;
    }
}
项目:the-vigilantes    文件CallableStatement.java   
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.placeholderToParameterIndexMap == null) {
            return this.paramInfo;
        }

        return new CallableStatementParamInfo(this.paramInfo);
    }
}
项目:the-vigilantes    文件PreparedStatement.java   
/**
 * @see PreparedStatement#getParameterMetaData()
 */
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.parameterMetaData == null) {
            if (this.connection.getGenerateSimpleParameterMetadata()) {
                this.parameterMetaData = new MysqLParameterMetadata(this.parameterCount);
            } else {
                this.parameterMetaData = new MysqLParameterMetadata(null,getExceptionInterceptor());
            }
        }

        return this.parameterMetaData;
    }
}
项目:the-vigilantes    文件PreparedStatementWrapper.java   
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        if (this.wrappedStmt != null) {
            return ((PreparedStatement) this.wrappedStmt).getParameterMetaData();
        }

        throw sqlError.createsqlException("No operations allowed after statement closed",sqlError.sql_STATE_GENERAL_ERROR,this.exceptionInterceptor);
    } catch (sqlException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }

    return null;
}
项目:Equella    文件JdbcQueryDelegate.java   
@Override
public MetadataBean getParameterMetadata(String query,final List<Object> params)
{
    try
    {
        query = processQuery(query);

        return (MetadataBean) new JdbcTemplate(getDataSourceHolder().getDataSource()).execute(query,new PreparedStatementCallback()
            {
                @Override
                public Object doInPreparedStatement(PreparedStatement statement) throws sqlException,DataAccessException
                {
                    addParamsToStatement(statement,params);
                    try
                    {
                        ParameterMetaData parameterMetaData = statement.getParameterMetaData();
                        return new MetadataBean(parameterMetaData);
                    }
                    catch( sqlException sqle )
                    {
                        return null;
                    }
                }
            });
    }
    catch( Exception e )
    {
        String msg = CurrentLocale.get("com.tle.core.reporting.error.parameter.Metadata") + query;
        LOGGER.error(msg,e);
        throw new RuntimeException(msg,e);
    }
}
项目:OpenVertretung    文件ConnectionTest.java   
private void testInterfaceImplementation(Connection conntocheck) throws Exception {
    Method[] dbmdMethods = java.sql.DatabaseMetaData.class.getmethods();

    // can't do this statically,conntocheck);
}
项目:OpenVertretung    文件ServerPreparedStatement.java   
/**
 * @see java.sql.PreparedStatement#getParameterMetaData()
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {

        if (this.parameterMetaData == null) {
            this.parameterMetaData = new MysqLParameterMetadata(this.parameterFields,getExceptionInterceptor());
        }

        return this.parameterMetaData;
    }
}
项目:OpenVertretung    文件CallableStatement.java   
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.placeholderToParameterIndexMap == null) {
            return this.paramInfo;
        }

        return new CallableStatementParamInfo(this.paramInfo);
    }
}
项目:OpenVertretung    文件PreparedStatement.java   
/**
 * @see PreparedStatement#getParameterMetaData()
 */
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.parameterMetaData == null) {
            if (this.connection.getGenerateSimpleParameterMetadata()) {
                this.parameterMetaData = new MysqLParameterMetadata(this.parameterCount);
            } else {
                this.parameterMetaData = new MysqLParameterMetadata(null,getExceptionInterceptor());
            }
        }

        return this.parameterMetaData;
    }
}
项目:OpenVertretung    文件PreparedStatementWrapper.java   
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        if (this.wrappedStmt != null) {
            return ((PreparedStatement) this.wrappedStmt).getParameterMetaData();
        }

        throw sqlError.createsqlException("No operations allowed after statement closed",this.exceptionInterceptor);
    } catch (sqlException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }

    return null;
}
项目:lams    文件ServerPreparedStatement.java   
/**
 * @see java.sql.PreparedStatement#getParameterMetaData()
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {

        if (this.parameterMetaData == null) {
            this.parameterMetaData = new MysqLParameterMetadata(this.parameterFields,getExceptionInterceptor());
        }

        return this.parameterMetaData;
    }
}
项目:lams    文件CallableStatement.java   
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.placeholderToParameterIndexMap == null) {
            return this.paramInfo;
        }

        return new CallableStatementParamInfo(this.paramInfo);
    }
}
项目:lams    文件PreparedStatement.java   
/**
 * @see PreparedStatement#getParameterMetaData()
 */
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.parameterMetaData == null) {
            if (this.connection.getGenerateSimpleParameterMetadata()) {
                this.parameterMetaData = new MysqLParameterMetadata(this.parameterCount);
            } else {
                this.parameterMetaData = new MysqLParameterMetadata(null,getExceptionInterceptor());
            }
        }

        return this.parameterMetaData;
    }
}
项目:lams    文件PreparedStatementWrapper.java   
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        if (this.wrappedStmt != null) {
            return ((PreparedStatement) this.wrappedStmt).getParameterMetaData();
        }

        throw sqlError.createsqlException("No operations allowed after statement closed",this.exceptionInterceptor);
    } catch (sqlException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }

    return null;
}
项目:ProyectoPacientes    文件ConnectionTest.java   
private void testInterfaceImplementation(Connection conntocheck) throws Exception {
    Method[] dbmdMethods = java.sql.DatabaseMetaData.class.getmethods();

    // can't do this statically,conntocheck);
}
项目:ProyectoPacientes    文件ServerPreparedStatement.java   
/**
 * @see java.sql.PreparedStatement#getParameterMetaData()
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {

        if (this.parameterMetaData == null) {
            this.parameterMetaData = new MysqLParameterMetadata(this.parameterFields,getExceptionInterceptor());
        }

        return this.parameterMetaData;
    }
}
项目:ProyectoPacientes    文件CallableStatement.java   
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.placeholderToParameterIndexMap == null) {
            return this.paramInfo;
        }

        return new CallableStatementParamInfo(this.paramInfo);
    }
}
项目:ProyectoPacientes    文件PreparedStatement.java   
/**
 * @see PreparedStatement#getParameterMetaData()
 */
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.parameterMetaData == null) {
            if (this.connection.getGenerateSimpleParameterMetadata()) {
                this.parameterMetaData = new MysqLParameterMetadata(this.parameterCount);
            } else {
                this.parameterMetaData = new MysqLParameterMetadata(null,getExceptionInterceptor());
            }
        }

        return this.parameterMetaData;
    }
}
项目:ProyectoPacientes    文件PreparedStatementWrapper.java   
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        if (this.wrappedStmt != null) {
            return ((PreparedStatement) this.wrappedStmt).getParameterMetaData();
        }

        throw sqlError.createsqlException("No operations allowed after statement closed",this.exceptionInterceptor);
    } catch (sqlException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }

    return null;
}
项目:BibliotecaPS    文件ConnectionTest.java   
private void testInterfaceImplementation(Connection conntocheck) throws Exception {
    Method[] dbmdMethods = java.sql.DatabaseMetaData.class.getmethods();

    // can't do this statically,conntocheck);
}
项目:BibliotecaPS    文件ServerPreparedStatement.java   
/**
 * @see java.sql.PreparedStatement#getParameterMetaData()
 */
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {

        if (this.parameterMetaData == null) {
            this.parameterMetaData = new MysqLParameterMetadata(this.parameterFields,getExceptionInterceptor());
        }

        return this.parameterMetaData;
    }
}
项目:BibliotecaPS    文件CallableStatement.java   
@Override
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.placeholderToParameterIndexMap == null) {
            return this.paramInfo;
        }

        return new CallableStatementParamInfo(this.paramInfo);
    }
}
项目:BibliotecaPS    文件PreparedStatement.java   
/**
 * @see PreparedStatement#getParameterMetaData()
 */
public ParameterMetaData getParameterMetaData() throws sqlException {
    synchronized (checkClosed().getConnectionMutex()) {
        if (this.parameterMetaData == null) {
            if (this.connection.getGenerateSimpleParameterMetadata()) {
                this.parameterMetaData = new MysqLParameterMetadata(this.parameterCount);
            } else {
                this.parameterMetaData = new MysqLParameterMetadata(null,getExceptionInterceptor());
            }
        }

        return this.parameterMetaData;
    }
}
项目:BibliotecaPS    文件PreparedStatementWrapper.java   
public ParameterMetaData getParameterMetaData() throws sqlException {
    try {
        if (this.wrappedStmt != null) {
            return ((PreparedStatement) this.wrappedStmt).getParameterMetaData();
        }

        throw sqlError.createsqlException("No operations allowed after statement closed",this.exceptionInterceptor);
    } catch (sqlException sqlEx) {
        checkAndFireConnectionError(sqlEx);
    }

    return null;
}
项目:calcite-avatica    文件JdbcMeta.java   
protected static Signature signature(ResultSetMetaData MetaData,ParameterMetaData parameterMetaData,String sql,Meta.StatementType statementType) throws  sqlException {
  final CursorFactory cf = CursorFactory.LIST;  // because JdbcResultSet#frame
  return new Signature(columns(MetaData),sql,parameters(parameterMetaData),cf,statementType);
}
项目:calcite-avatica    文件JdbcMetaTest.java   
@Test public void testPrepareSetsMaxRows() throws Exception {
  final String id = UUID.randomUUID().toString();
  final String sql = "SELECT * FROM FOO";
  final int maxRows = 500;
  final ConnectionHandle ch = new ConnectionHandle(id);
  final AtomicInteger statementIdGenerator = new AtomicInteger(0);

  JdbcMeta Meta = Mockito.mock(JdbcMeta.class);
  Connection connection = Mockito.mock(Connection.class);
  PreparedStatement statement = Mockito.mock(PreparedStatement.class);
  ResultSetMetaData resultSetMetaData = Mockito.mock(ResultSetMetaData.class);
  ParameterMetaData parameterMetaData = Mockito.mock(ParameterMetaData.class);
  @SuppressWarnings("unchecked")
  Cache<Integer,StatementInfo> statementCache =
      (Cache<Integer,StatementInfo>) Mockito.mock(Cache.class);

  Mockito.when(Meta.getStatementIdGenerator()).thenReturn(statementIdGenerator);
  Mockito.when(Meta.getStatementCache()).thenReturn(statementCache);
  Mockito.when(Meta.getConnection(id)).thenReturn(connection);
  Mockito.when(connection.prepareStatement(sql)).thenReturn(statement);
  Mockito.when(statement.isWrapperFor(AvaticaPreparedStatement.class)).thenReturn(false);
  Mockito.when(statement.getMetaData()).thenReturn(resultSetMetaData);
  Mockito.when(statement.getParameterMetaData()).thenReturn(parameterMetaData);
  // Call the real methods
  Mockito.doCallRealMethod().when(Meta).setMaxRows(statement,maxRows);
  Mockito.doCallRealMethod().when(Meta).prepare(ch,maxRows);

  Meta.prepare(ch,maxRows);

  Mockito.verify(statement).setMaxRows(maxRows);
}
项目:calcite-avatica    文件RemoteDriverMockTest.java   
private void checkStatementExecuteQuery(Connection connection,boolean prepare) throws sqlException {
  final String sql = "select * from (\n"
      + "  values (1,'a'),(null,'b'),(3,'c')) as t (c1,c2)";
  final Statement statement;
  final ResultSet resultSet;
  final ParameterMetaData parameterMetaData;
  if (prepare) {
    final PreparedStatement ps = connection.prepareStatement(sql);
    statement = ps;
    parameterMetaData = ps.getParameterMetaData();
    resultSet = ps.executeQuery();
  } else {
    statement = connection.createStatement();
    parameterMetaData = null;
    resultSet = statement.executeQuery(sql);
  }
  if (parameterMetaData != null) {
    assertthat(parameterMetaData.getParameterCount(),equalTo(0));
  }
  final ResultSetMetaData MetaData = resultSet.getMetaData();
  assertEquals(2,MetaData.getColumnCount());
  assertEquals("C1",MetaData.getColumnName(1));
  assertEquals("C2",MetaData.getColumnName(2));
  assertTrue(resultSet.next());
  assertTrue(resultSet.next());
  assertTrue(resultSet.next());
  assertFalse(resultSet.next());
  resultSet.close();
  statement.close();
  connection.close();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。