Class JDBCInsertFeatureWriter
- Object
-
- JDBCFeatureReader
-
- JDBCInsertFeatureWriter
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,FeatureReader<SimpleFeatureType,SimpleFeature>,FeatureWriter<SimpleFeatureType,SimpleFeature>
public class JDBCInsertFeatureWriter extends JDBCFeatureReader implements FeatureWriter<SimpleFeatureType,SimpleFeature>, Flushable
Inserts features in the database. Buffers the insertions until BUFFER_SIZE is reached or the writer is closed.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class JDBCFeatureReader
JDBCFeatureReader.ResultSetFeature
-
-
Field Summary
-
Fields inherited from class JDBCFeatureReader
builder, callback, columnNames, cx, dataStore, featureSource, featureType, geometryFactory, hints, LOGGER, md, next, offset, pkey, query, rs, screenMap, st, TRACE_ENABLED, tracer, tx
-
-
Constructor Summary
Constructors Constructor Description JDBCInsertFeatureWriter(String sql, Connection cx, JDBCFeatureSource featureSource, Query query)JDBCInsertFeatureWriter(PreparedStatement ps, Connection cx, JDBCFeatureSource featureSource, Query query)JDBCInsertFeatureWriter(JDBCUpdateFeatureWriter other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcleanup()Cleans up the reader state without closing the accessory resultset, statement and connection.voidclose()Release the underlying resources associated with this stream.voidflush()booleanhasNext()Query whether this FeatureReader has another Feature.SimpleFeaturenext()Reads the next Feature in the FeatureReader.voidremove()Removes current Feature, must be called before hasNext.voidwrite()Writes the current Feature, must be called before hasNext.-
Methods inherited from class JDBCFeatureReader
ensureNext, ensureOpen, finalize, getFeatureType, getPrimaryKey, getQuery, init, readNextFeature, setNext
-
Methods inherited from class Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface FeatureWriter
getFeatureType
-
-
-
-
Constructor Detail
-
JDBCInsertFeatureWriter
public JDBCInsertFeatureWriter(String sql, Connection cx, JDBCFeatureSource featureSource, Query query) throws SQLException, IOException
- Throws:
SQLExceptionIOException
-
JDBCInsertFeatureWriter
public JDBCInsertFeatureWriter(PreparedStatement ps, Connection cx, JDBCFeatureSource featureSource, Query query) throws SQLException, IOException
- Throws:
SQLExceptionIOException
-
JDBCInsertFeatureWriter
public JDBCInsertFeatureWriter(JDBCUpdateFeatureWriter other) throws IOException
- Throws:
IOException
-
-
Method Detail
-
hasNext
public boolean hasNext() throws IOExceptionDescription copied from interface:FeatureReaderQuery whether this FeatureReader has another Feature.- Specified by:
hasNextin interfaceFeatureReader<SimpleFeatureType,SimpleFeature>- Specified by:
hasNextin interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Overrides:
hasNextin classJDBCFeatureReader- Returns:
- True if there are more Features to be read. In other words, true if calls to next would return a feature rather than throwing an exception.
- Throws:
IOException- If an error occurs determining if there are more Features.
-
next
public SimpleFeature next() throws IOException
Description copied from interface:FeatureReaderReads the next Feature in the FeatureReader.- Specified by:
nextin interfaceFeatureReader<SimpleFeatureType,SimpleFeature>- Specified by:
nextin interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Overrides:
nextin classJDBCFeatureReader- Returns:
- The next feature in the reader.
- Throws:
IOException- If an error occurs reading the Feature.
-
remove
public void remove() throws IOExceptionDescription copied from interface:FeatureWriterRemoves current Feature, must be called before hasNext.FeatureWriters will need to allow all FeatureSources of the same typeName to issue a FeatureEvent event of type
FeatureEvent.FEATURES_REMOVEDwhen this method is called.If this FeatureWriter is opperating against a Transaction FEATURES_REMOVED events should only be sent to FeatureSources operating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
When the current Feature has been provided as new content, this method "cancels" the add opperation (and notification needed).
- Specified by:
removein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Throws:
IOException
-
write
public void write() throws IOExceptionDescription copied from interface:FeatureWriterWrites the current Feature, must be called before hasNext.FeautreWriters will need to allow FeatureSources of the same typeName to issue a FeatureEvent:
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
false. - FeatureEvent.FEATURES_MODIFIED: when next has been called with hasNext() equal to
trueand the resulting Feature has indeed been modified.
If this FeatureWriter is opperating against a Transaction the FEATURES_MODIFIED or FEATURES_ADDED events should only be sent to FeatureSources opperating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
If you have not called write() when you call hasNext() or next(), no modification will occur().
- Specified by:
writein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Throws:
IOException
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
-
cleanup
protected void cleanup() throws IOExceptionDescription copied from class:JDBCFeatureReaderCleans up the reader state without closing the accessory resultset, statement and connection. Use only if the above are shared with another object that will take care of closing them.- Overrides:
cleanupin classJDBCFeatureReader- Throws:
IOException
-
flush
public void flush() throws IOException- Specified by:
flushin interfaceFlushable- Throws:
IOException
-
close
public void close() throws IOExceptionDescription copied from interface:FeatureReaderRelease the underlying resources associated with this stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceFeatureReader<SimpleFeatureType,SimpleFeature>- Specified by:
closein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Overrides:
closein classJDBCFeatureReader- Throws:
IOException- if an I/O error occurs
-
-