Class JDBCStream
java.lang.Object
org.apache.solr.client.solrj.io.stream.TupleStream
org.apache.solr.client.solrj.io.stream.JDBCStream
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Expressible,org.apache.solr.common.MapSerializable,org.apache.solr.common.MapWriter,org.apache.solr.common.NavigableObject,org.noggit.JSONWriter.Writable
Connects to a datasource using a registered JDBC driver and execute a query. The results of that
query will be returned as tuples. An EOF tuple will indicate that all have been read.
Supported Datatypes for most types vary by JDBC driver based on the specific java type as
reported by ResultSetMetaData.getColumnClassName(int). The exception are Types.DATE, Types.TIME or Types.TIMESTAMP which are determined by the JDBC type.
| Java or JDBC Type | Tuple Type | Notes |
|---|---|---|
| Boolean | Boolean | |
| String | String | |
| Short, Integer, Long | Long | |
| Float, Double | Double | |
Clob and subclasses |
String | Clobs up to length 231-1 are supported. |
Other subclasses of Number |
Long, Double | Tuple Type based on BigDecimal.scale(). |
JDBC Types.DATE |
String | yyyy-MM-dd, calls Date.toString() |
JDBC Types.TIME |
String | hh:mm:ss, calls Time.toString() |
JDBC Types.TIMESTAMP |
String | See DateTimeFormatter.ISO_INSTANT |
- Since:
- 6.0.0
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreExceptionNested classes/interfaces inherited from interface org.apache.solr.common.MapWriter
org.apache.solr.common.MapWriter.EntryWriter -
Field Summary
FieldsFields inherited from interface org.apache.solr.common.MapWriter
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionJDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort) JDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort, Properties connectionProperties, String driverClassName) JDBCStream(StreamExpression expression, StreamFactory factory) -
Method Summary
Modifier and TypeMethodDescriptionchildren()voidclose()Closes the JDBCStreamprotected JDBCStream.ResultSetValueSelectordetermineValueSelector(int columnIdx, ResultSetMetaData metadata) protected Drivervoidopen()Opens the JDBCStreamread()voidsetStreamContext(StreamContext context) toExplanation(StreamFactory factory) Returns an explanation about the stream objecttoExpression(StreamFactory factory) Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getCost, getShards, getShards, getStreamNodeId, writeMapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.solr.common.MapWriter
jsonStr, toMap, writeMethods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size
-
Field Details
-
resultSet
-
streamContext
-
sep
-
-
Constructor Details
-
JDBCStream
public JDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort) throws IOException - Throws:
IOException
-
JDBCStream
public JDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort, Properties connectionProperties, String driverClassName) throws IOException - Throws:
IOException
-
JDBCStream
- Throws:
IOException
-
-
Method Details
-
setStreamContext
- Specified by:
setStreamContextin classTupleStream
-
getDriver
- Throws:
IOException
-
open
Opens the JDBCStream- Specified by:
openin classTupleStream- Throws:
IOException
-
determineValueSelector
protected JDBCStream.ResultSetValueSelector determineValueSelector(int columnIdx, ResultSetMetaData metadata) throws SQLException - Throws:
SQLException
-
close
Closes the JDBCStream- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
read
- Specified by:
readin classTupleStream- Throws:
IOException
-
toExpression
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
toExplanationin interfaceExpressible- Specified by:
toExplanationin classTupleStream- Parameters:
factory- Stream factory for this, contains information about the function name- Returns:
- Explanation about this stream object containing explanations of any child stream objects
- Throws:
IOException- throw on any error
-
children
- Specified by:
childrenin classTupleStream
-
getStreamSort
- Specified by:
getStreamSortin classTupleStream
-