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
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 by
ResultSetMetaData.getColumnClassName(int). The exception areTypes.DATE,Types.TIMEorTypes.TIMESTAMPwhich are determined by the JDBC type.Supported Java Types 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
-
-
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)protected DrivergetDriver()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, getShards, getStreamNodeId, writeMap
-
-
-
-
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
-
getDriver
protected Driver getDriver() throws IOException
- Throws:
IOException
-
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
-
-