test_class.file: core/src/test/java/com/qihoo/qsql/api/AutomaticConnectionTest.java
test_class.identifier: AutomaticConnectionTest
test_case.body: @Test
      public void testBasicConnectFunction() {
          try {
              Connection connection = SqlRunner.getConnection();
              PreparedStatement statement = connection.prepareStatement("select 1");
              ResultSet resultSet = statement.executeQuery();
              resultSet.next();
              Assert.assertEquals(resultSet.getInt(1), 1);
          } catch (SQLException ex) {
              ex.printStackTrace();
          }
      }
test_case.class_method_signature: AutomaticConnectionTest.testBasicConnectFunction()
test_case.full_signature: @Test public void testBasicConnectFunction()
test_case.identifier: testBasicConnectFunction
test_case.invocations: getConnection prepareStatement executeQuery next assertEquals getInt printStackTrace
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBasicConnectFunction()
focal_class.declarator: VALUES_SCHEMA = "inline:"
          + "{\n"
          + "  version: '1.0',\n"
          + "  defaultSchema: 'SALES',\n"
          + "  schemas: [\n"
          + "    {\n"
          + "      name: 'SALES',\n"
          + "      type: 'custom',\n"
          + "      factory: 'com.qihoo.qsql.org.apache.calcite.adapter.csv.CsvSchemaFactory',\n"
          + "      operand: {\n"
          + "        directory: 'sales'\n"
          + "      }\n"
          + "    }\n"
          + "  ]\n"
          + "}"
focal_class.modifier: private static final
focal_class.original_string: private static final String VALUES_SCHEMA = "inline:"
          + "{\n"
          + "  version: '1.0',\n"
          + "  defaultSchema: 'SALES',\n"
          + "  schemas: [\n"
          + "    {\n"
          + "      name: 'SALES',\n"
          + "      type: 'custom',\n"
          + "      factory: 'com.qihoo.qsql.org.apache.calcite.adapter.csv.CsvSchemaFactory',\n"
          + "      operand: {\n"
          + "        directory: 'sales'\n"
          + "      }\n"
          + "    }\n"
          + "  ]\n"
          + "}";
focal_class.type: String
focal_class.var_name: VALUES_SCHEMA
focal_class.declarator: connection
focal_class.modifier: private
focal_class.original_string: private Connection connection;
focal_class.type: Connection
focal_class.var_name: connection
focal_class.declarator: schemaPath = ""
focal_class.modifier: private
focal_class.original_string: private String schemaPath = "";
focal_class.type: String
focal_class.var_name: schemaPath
focal_class.declarator: tableNames = new HashSet<>()
focal_class.modifier: private
focal_class.original_string: private Set<String> tableNames = new HashSet<>();
focal_class.type: Set<String>
focal_class.var_name: tableNames
focal_class.declarator: simpleConnection
focal_class.modifier: private
focal_class.original_string: private Connection simpleConnection;
focal_class.type: Connection
focal_class.var_name: simpleConnection
focal_class.file: core/src/main/java/com/qihoo/qsql/api/AutomaticConnection.java
focal_class.identifier: AutomaticConnection
focal_class.interfaces: implements Connection
focal_class.class_method_signature: AutomaticConnection.AutomaticConnection(String path)
focal_class.full_signature: public  AutomaticConnection(String path)
focal_class.identifier: AutomaticConnection
focal_class.modifiers: public
focal_class.parameters: (String path)
focal_class.signature:  AutomaticConnection(String path)
focal_class.class_method_signature: AutomaticConnection.AutomaticConnection()
focal_class.full_signature: public  AutomaticConnection()
focal_class.identifier: AutomaticConnection
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  AutomaticConnection()
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql)
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql,
          int resultSetType,
          int resultSetConcurrency)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency)
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency,
          int resultSetHoldability)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency,
          int resultSetHoldability)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql,
          int resultSetType,
          int resultSetConcurrency,
          int resultSetHoldability)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql,
          int resultSetType,
          int resultSetConcurrency,
          int resultSetHoldability)
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql, int autoGeneratedKeys)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql, int autoGeneratedKeys)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql, int[] columnIndexes)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql, int[] columnIndexes)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql, int[] columnIndexes)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql, int[] columnIndexes)
focal_class.class_method_signature: AutomaticConnection.prepareStatement(String sql, String[] columnNames)
focal_class.full_signature: @Override public PreparedStatement prepareStatement(String sql, String[] columnNames)
focal_class.identifier: prepareStatement
focal_class.modifiers: @Override public
focal_class.parameters: (String sql, String[] columnNames)
focal_class.return: PreparedStatement
focal_class.signature: PreparedStatement prepareStatement(String sql, String[] columnNames)
focal_class.class_method_signature: AutomaticConnection.prepareCall(String sql)
focal_class.full_signature: @Override public CallableStatement prepareCall(String sql)
focal_class.identifier: prepareCall
focal_class.modifiers: @Override public
focal_class.parameters: (String sql)
focal_class.return: CallableStatement
focal_class.signature: CallableStatement prepareCall(String sql)
focal_class.class_method_signature: AutomaticConnection.prepareCall(String sql, int resultSetType, int resultSetConcurrency)
focal_class.full_signature: @Override public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
focal_class.identifier: prepareCall
focal_class.modifiers: @Override public
focal_class.parameters: (String sql, int resultSetType, int resultSetConcurrency)
focal_class.return: CallableStatement
focal_class.signature: CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
focal_class.class_method_signature: AutomaticConnection.prepareCall(String sql, int resultSetType, int resultSetConcurrency,
          int resultSetHoldability)
focal_class.full_signature: @Override public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency,
          int resultSetHoldability)
focal_class.identifier: prepareCall
focal_class.modifiers: @Override public
focal_class.parameters: (String sql, int resultSetType, int resultSetConcurrency,
          int resultSetHoldability)
focal_class.return: CallableStatement
focal_class.signature: CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency,
          int resultSetHoldability)
focal_class.class_method_signature: AutomaticConnection.nativeSQL(String sql)
focal_class.full_signature: @Override public String nativeSQL(String sql)
focal_class.identifier: nativeSQL
focal_class.modifiers: @Override public
focal_class.parameters: (String sql)
focal_class.return: String
focal_class.signature: String nativeSQL(String sql)
focal_class.class_method_signature: AutomaticConnection.getAutoCommit()
focal_class.full_signature: @Override public boolean getAutoCommit()
focal_class.identifier: getAutoCommit
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean getAutoCommit()
focal_class.class_method_signature: AutomaticConnection.setAutoCommit(boolean autoCommit)
focal_class.full_signature: @Override public void setAutoCommit(boolean autoCommit)
focal_class.identifier: setAutoCommit
focal_class.modifiers: @Override public
focal_class.parameters: (boolean autoCommit)
focal_class.return: void
focal_class.signature: void setAutoCommit(boolean autoCommit)
focal_class.class_method_signature: AutomaticConnection.commit()
focal_class.full_signature: @Override public void commit()
focal_class.identifier: commit
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void commit()
focal_class.class_method_signature: AutomaticConnection.rollback()
focal_class.full_signature: @Override public void rollback()
focal_class.identifier: rollback
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void rollback()
focal_class.class_method_signature: AutomaticConnection.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: AutomaticConnection.isClosed()
focal_class.full_signature: @Override public boolean isClosed()
focal_class.identifier: isClosed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isClosed()
focal_class.class_method_signature: AutomaticConnection.getMetaData()
focal_class.full_signature: @Override public DatabaseMetaData getMetaData()
focal_class.identifier: getMetaData
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: DatabaseMetaData
focal_class.signature: DatabaseMetaData getMetaData()
focal_class.class_method_signature: AutomaticConnection.isReadOnly()
focal_class.full_signature: @Override public boolean isReadOnly()
focal_class.identifier: isReadOnly
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isReadOnly()
focal_class.class_method_signature: AutomaticConnection.setReadOnly(boolean readOnly)
focal_class.full_signature: @Override public void setReadOnly(boolean readOnly)
focal_class.identifier: setReadOnly
focal_class.modifiers: @Override public
focal_class.parameters: (boolean readOnly)
focal_class.return: void
focal_class.signature: void setReadOnly(boolean readOnly)
focal_class.class_method_signature: AutomaticConnection.getCatalog()
focal_class.full_signature: @Override public String getCatalog()
focal_class.identifier: getCatalog
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getCatalog()
focal_class.class_method_signature: AutomaticConnection.setCatalog(String catalog)
focal_class.full_signature: @Override public void setCatalog(String catalog)
focal_class.identifier: setCatalog
focal_class.modifiers: @Override public
focal_class.parameters: (String catalog)
focal_class.return: void
focal_class.signature: void setCatalog(String catalog)
focal_class.class_method_signature: AutomaticConnection.getTransactionIsolation()
focal_class.full_signature: @Override public int getTransactionIsolation()
focal_class.identifier: getTransactionIsolation
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getTransactionIsolation()
focal_class.class_method_signature: AutomaticConnection.setTransactionIsolation(int level)
focal_class.full_signature: @Override public void setTransactionIsolation(int level)
focal_class.identifier: setTransactionIsolation
focal_class.modifiers: @Override public
focal_class.parameters: (int level)
focal_class.return: void
focal_class.signature: void setTransactionIsolation(int level)
focal_class.class_method_signature: AutomaticConnection.getWarnings()
focal_class.full_signature: @Override public SQLWarning getWarnings()
focal_class.identifier: getWarnings
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SQLWarning
focal_class.signature: SQLWarning getWarnings()
focal_class.class_method_signature: AutomaticConnection.clearWarnings()
focal_class.full_signature: @Override public void clearWarnings()
focal_class.identifier: clearWarnings
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clearWarnings()
focal_class.class_method_signature: AutomaticConnection.createStatement()
focal_class.full_signature: @Override public Statement createStatement()
focal_class.identifier: createStatement
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Statement
focal_class.signature: Statement createStatement()
focal_class.class_method_signature: AutomaticConnection.createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
focal_class.full_signature: @Override public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
focal_class.identifier: createStatement
focal_class.modifiers: @Override public
focal_class.parameters: (int resultSetType, int resultSetConcurrency, int resultSetHoldability)
focal_class.return: Statement
focal_class.signature: Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
focal_class.class_method_signature: AutomaticConnection.createStatement(int resultSetType, int resultSetConcurrency)
focal_class.full_signature: @Override public Statement createStatement(int resultSetType, int resultSetConcurrency)
focal_class.identifier: createStatement
focal_class.modifiers: @Override public
focal_class.parameters: (int resultSetType, int resultSetConcurrency)
focal_class.return: Statement
focal_class.signature: Statement createStatement(int resultSetType, int resultSetConcurrency)
focal_class.class_method_signature: AutomaticConnection.getTypeMap()
focal_class.full_signature: @Override public Map<String, Class<?>> getTypeMap()
focal_class.identifier: getTypeMap
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<String, Class<?>>
focal_class.signature: Map<String, Class<?>> getTypeMap()
focal_class.class_method_signature: AutomaticConnection.setTypeMap(Map<String, Class<?>> map)
focal_class.full_signature: @Override public void setTypeMap(Map<String, Class<?>> map)
focal_class.identifier: setTypeMap
focal_class.modifiers: @Override public
focal_class.parameters: (Map<String, Class<?>> map)
focal_class.return: void
focal_class.signature: void setTypeMap(Map<String, Class<?>> map)
focal_class.class_method_signature: AutomaticConnection.getHoldability()
focal_class.full_signature: @Override public int getHoldability()
focal_class.identifier: getHoldability
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getHoldability()
focal_class.class_method_signature: AutomaticConnection.setHoldability(int holdability)
focal_class.full_signature: @Override public void setHoldability(int holdability)
focal_class.identifier: setHoldability
focal_class.modifiers: @Override public
focal_class.parameters: (int holdability)
focal_class.return: void
focal_class.signature: void setHoldability(int holdability)
focal_class.class_method_signature: AutomaticConnection.setSavepoint()
focal_class.full_signature: @Override public Savepoint setSavepoint()
focal_class.identifier: setSavepoint
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Savepoint
focal_class.signature: Savepoint setSavepoint()
focal_class.class_method_signature: AutomaticConnection.setSavepoint(String name)
focal_class.full_signature: @Override public Savepoint setSavepoint(String name)
focal_class.identifier: setSavepoint
focal_class.modifiers: @Override public
focal_class.parameters: (String name)
focal_class.return: Savepoint
focal_class.signature: Savepoint setSavepoint(String name)
focal_class.class_method_signature: AutomaticConnection.rollback(Savepoint savepoint)
focal_class.full_signature: @Override public void rollback(Savepoint savepoint)
focal_class.identifier: rollback
focal_class.modifiers: @Override public
focal_class.parameters: (Savepoint savepoint)
focal_class.return: void
focal_class.signature: void rollback(Savepoint savepoint)
focal_class.class_method_signature: AutomaticConnection.releaseSavepoint(Savepoint savepoint)
focal_class.full_signature: @Override public void releaseSavepoint(Savepoint savepoint)
focal_class.identifier: releaseSavepoint
focal_class.modifiers: @Override public
focal_class.parameters: (Savepoint savepoint)
focal_class.return: void
focal_class.signature: void releaseSavepoint(Savepoint savepoint)
focal_class.class_method_signature: AutomaticConnection.createClob()
focal_class.full_signature: @Override public Clob createClob()
focal_class.identifier: createClob
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Clob
focal_class.signature: Clob createClob()
focal_class.class_method_signature: AutomaticConnection.createBlob()
focal_class.full_signature: @Override public Blob createBlob()
focal_class.identifier: createBlob
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Blob
focal_class.signature: Blob createBlob()
focal_class.class_method_signature: AutomaticConnection.createNClob()
focal_class.full_signature: @Override public NClob createNClob()
focal_class.identifier: createNClob
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: NClob
focal_class.signature: NClob createNClob()
focal_class.class_method_signature: AutomaticConnection.createSQLXML()
focal_class.full_signature: @Override public SQLXML createSQLXML()
focal_class.identifier: createSQLXML
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SQLXML
focal_class.signature: SQLXML createSQLXML()
focal_class.class_method_signature: AutomaticConnection.isValid(int timeout)
focal_class.full_signature: @Override public boolean isValid(int timeout)
focal_class.identifier: isValid
focal_class.modifiers: @Override public
focal_class.parameters: (int timeout)
focal_class.return: boolean
focal_class.signature: boolean isValid(int timeout)
focal_class.class_method_signature: AutomaticConnection.setClientInfo(String name, String value)
focal_class.full_signature: @Override public void setClientInfo(String name, String value)
focal_class.identifier: setClientInfo
focal_class.modifiers: @Override public
focal_class.parameters: (String name, String value)
focal_class.return: void
focal_class.signature: void setClientInfo(String name, String value)
focal_class.class_method_signature: AutomaticConnection.getClientInfo(String name)
focal_class.full_signature: @Override public String getClientInfo(String name)
focal_class.identifier: getClientInfo
focal_class.modifiers: @Override public
focal_class.parameters: (String name)
focal_class.return: String
focal_class.signature: String getClientInfo(String name)
focal_class.class_method_signature: AutomaticConnection.getClientInfo()
focal_class.full_signature: @Override public Properties getClientInfo()
focal_class.identifier: getClientInfo
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Properties
focal_class.signature: Properties getClientInfo()
focal_class.class_method_signature: AutomaticConnection.setClientInfo(Properties properties)
focal_class.full_signature: @Override public void setClientInfo(Properties properties)
focal_class.identifier: setClientInfo
focal_class.modifiers: @Override public
focal_class.parameters: (Properties properties)
focal_class.return: void
focal_class.signature: void setClientInfo(Properties properties)
focal_class.class_method_signature: AutomaticConnection.createArrayOf(String typeName, Object[] elements)
focal_class.full_signature: @Override public Array createArrayOf(String typeName, Object[] elements)
focal_class.identifier: createArrayOf
focal_class.modifiers: @Override public
focal_class.parameters: (String typeName, Object[] elements)
focal_class.return: Array
focal_class.signature: Array createArrayOf(String typeName, Object[] elements)
focal_class.class_method_signature: AutomaticConnection.createStruct(String typeName, Object[] attributes)
focal_class.full_signature: @Override public Struct createStruct(String typeName, Object[] attributes)
focal_class.identifier: createStruct
focal_class.modifiers: @Override public
focal_class.parameters: (String typeName, Object[] attributes)
focal_class.return: Struct
focal_class.signature: Struct createStruct(String typeName, Object[] attributes)
focal_class.class_method_signature: AutomaticConnection.getSchema()
focal_class.full_signature: @Override public String getSchema()
focal_class.identifier: getSchema
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getSchema()
focal_class.class_method_signature: AutomaticConnection.setSchema(String schema)
focal_class.full_signature: @Override public void setSchema(String schema)
focal_class.identifier: setSchema
focal_class.modifiers: @Override public
focal_class.parameters: (String schema)
focal_class.return: void
focal_class.signature: void setSchema(String schema)
focal_class.class_method_signature: AutomaticConnection.abort(Executor executor)
focal_class.full_signature: @Override public void abort(Executor executor)
focal_class.identifier: abort
focal_class.modifiers: @Override public
focal_class.parameters: (Executor executor)
focal_class.return: void
focal_class.signature: void abort(Executor executor)
focal_class.class_method_signature: AutomaticConnection.setNetworkTimeout(Executor executor, int milliseconds)
focal_class.full_signature: @Override public void setNetworkTimeout(Executor executor, int milliseconds)
focal_class.identifier: setNetworkTimeout
focal_class.modifiers: @Override public
focal_class.parameters: (Executor executor, int milliseconds)
focal_class.return: void
focal_class.signature: void setNetworkTimeout(Executor executor, int milliseconds)
focal_class.class_method_signature: AutomaticConnection.getNetworkTimeout()
focal_class.full_signature: @Override public int getNetworkTimeout()
focal_class.identifier: getNetworkTimeout
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getNetworkTimeout()
focal_class.class_method_signature: AutomaticConnection.unwrap(Class<T> iface)
focal_class.full_signature: @Override public T unwrap(Class<T> iface)
focal_class.identifier: unwrap
focal_class.modifiers: @Override public
focal_class.parameters: (Class<T> iface)
focal_class.return: T
focal_class.signature: T unwrap(Class<T> iface)
focal_class.class_method_signature: AutomaticConnection.isWrapperFor(Class<?> iface)
focal_class.full_signature: @Override public boolean isWrapperFor(Class<?> iface)
focal_class.identifier: isWrapperFor
focal_class.modifiers: @Override public
focal_class.parameters: (Class<?> iface)
focal_class.return: boolean
focal_class.signature: boolean isWrapperFor(Class<?> iface)
focal_method.body: @Override
      public PreparedStatement prepareStatement(String sql) throws SQLException {
          QueryTables tables = SqlUtil.parseTableName(sql);
          if (tables.isDml()) {
              throw new RuntimeException("Unsupported DML in JDBC model");
          }
  
          List<String> names = tables.tableNames;
          if (names.isEmpty()) {
              return simpleConnection.prepareStatement(sql);
          }
  
          //caution: tableName has changed to dbName.tableName
          if (names.stream().anyMatch(name -> !tableNames.contains(name))) {
              tableNames.clear();
              tableNames.addAll(names);
          } else {
              if (connection != null) {
                  return connection.prepareStatement(sql);
              }
          }
  
          if (schemaPath.isEmpty()) {
              this.connection = JdbcPipeline.createSpecificConnection(
                  MetadataPostman.getAssembledSchema(new ArrayList<>(tableNames)));
          } else {
              this.connection =
                  JdbcPipeline.createSpecificConnection(schemaPath, new ArrayList<>(tableNames));
          }
  
          return connection.prepareStatement(sql);
      }
focal_method.class_method_signature: AutomaticConnection.prepareStatement(String sql)
focal_method.full_signature: @Override public PreparedStatement prepareStatement(String sql)
focal_method.identifier: prepareStatement
focal_method.invocations: parseTableName isDml isEmpty prepareStatement anyMatch stream contains clear addAll prepareStatement isEmpty createSpecificConnection getAssembledSchema createSpecificConnection prepareStatement
focal_method.modifiers: @Override public
focal_method.parameters: (String sql)
focal_method.return: PreparedStatement
focal_method.signature: PreparedStatement prepareStatement(String sql)