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
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.TIME
orTypes.TIMESTAMP
which 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 Clob
and subclassesString 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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
JDBCStream.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 ResultSet
resultSet
protected String
sep
protected StreamContext
streamContext
-
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()
void
close()
Closes the JDBCStreamprotected JDBCStream.ResultSetValueSelector
determineValueSelector(int columnIdx, ResultSetMetaData metadata)
protected Driver
getDriver()
StreamComparator
getStreamSort()
void
open()
Opens the JDBCStreamTuple
read()
void
setStreamContext(StreamContext context)
Explanation
toExplanation(StreamFactory factory)
Returns an explanation about the stream objectStreamExpressionParameter
toExpression(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:
setStreamContext
in classTupleStream
-
getDriver
protected Driver getDriver() throws IOException
- Throws:
IOException
-
open
public void open() throws IOException
Opens the JDBCStream- Specified by:
open
in classTupleStream
- Throws:
IOException
-
determineValueSelector
protected JDBCStream.ResultSetValueSelector determineValueSelector(int columnIdx, ResultSetMetaData metadata) throws SQLException
- Throws:
SQLException
-
close
public void close() throws IOException
Closes the JDBCStream- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classTupleStream
- Throws:
IOException
-
read
public Tuple read() throws IOException
- Specified by:
read
in classTupleStream
- Throws:
IOException
-
toExpression
public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException
- Specified by:
toExpression
in interfaceExpressible
- Throws:
IOException
-
toExplanation
public Explanation toExplanation(StreamFactory factory) throws IOException
Description copied from interface:Expressible
Returns an explanation about the stream object- Specified by:
toExplanation
in interfaceExpressible
- Specified by:
toExplanation
in 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:
children
in classTupleStream
-
getStreamSort
public StreamComparator getStreamSort()
- Specified by:
getStreamSort
in classTupleStream
-
-