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,MapSerializable,MapWriter,NavigableObject
public class JDBCStream extends TupleStream implements Expressible
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 byResultSetMetaData.getColumnClassName(int). The exception areTypes.DATE,Types.TIMEorTypes.TIMESTAMPwhich are determined by the JDBC type.Java or JDBC Type Tuple Type Notes Boolean Boolean String String Short, Integer, Long Long Float, Double Double Cloband subclassesString Clobs up to length 231-1 are supported. Other subclasses of NumberLong, Double Tuple Type based on BigDecimal.scale().JDBC Types.DATEString yyyy-MM-dd, calls Date.toString()JDBC Types.TIMEString hh:mm:ss, calls Time.toString()JDBC Types.TIMESTAMPString See DateTimeFormatter.ISO_INSTANT- Since:
- 6.0.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceJDBCStream.ResultSetValueSelector-
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreException
-
Nested classes/interfaces inherited from interface org.apache.solr.common.MapWriter
MapWriter.EntryWriter
-
-
Field Summary
Fields Modifier and Type Field Description protected ResultSetresultSetprotected Stringsepprotected StreamContextstreamContext
-
Constructor Summary
Constructors Constructor Description JDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort)JDBCStream(String connectionUrl, String sqlQuery, StreamComparator definedSort, Properties connectionProperties, String driverClassName)JDBCStream(StreamExpression expression, StreamFactory factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<TupleStream>children()voidclose()Closes the JDBCStreamprotected JDBCStream.ResultSetValueSelectordetermineValueSelector(int columnIdx, ResultSetMetaData metadata)StreamComparatorgetStreamSort()voidopen()Opens the JDBCStreamTupleread()voidsetStreamContext(StreamContext context)ExplanationtoExplanation(StreamFactory factory)Returns an explanation about the stream objectStreamExpressionParametertoExpression(StreamFactory factory)-
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getCost, getShards, getStreamNodeId, writeMap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr
-
-
-
-
Field Detail
-
resultSet
protected ResultSet resultSet
-
streamContext
protected transient StreamContext streamContext
-
sep
protected String sep
-
-
Constructor Detail
-
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
public JDBCStream(StreamExpression expression, StreamFactory factory) throws IOException
- Throws:
IOException
-
-
Method Detail
-
setStreamContext
public void setStreamContext(StreamContext context)
- Specified by:
setStreamContextin classTupleStream
-
open
public void open() throws IOExceptionOpens the JDBCStream- Specified by:
openin classTupleStream- Throws:
IOException
-
determineValueSelector
protected JDBCStream.ResultSetValueSelector determineValueSelector(int columnIdx, ResultSetMetaData metadata) throws SQLException
- Throws:
SQLException
-
close
public void close() throws IOExceptionCloses the JDBCStream- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
read
public Tuple read() throws IOException
- Specified by:
readin classTupleStream- Throws:
IOException
-
toExpression
public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
public Explanation toExplanation(StreamFactory factory) throws IOException
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
public List<TupleStream> children()
- Specified by:
childrenin classTupleStream
-
getStreamSort
public StreamComparator getStreamSort()
- Specified by:
getStreamSortin classTupleStream
-
-