T
- the entity bean typepublic interface CsvReader<T>
This first example doesn't use a CsvCallback
and this means it will
automatically create a transaction, save the customers and commit the
transaction when successful.
try {
File f = new File("src/test/resources/test1.csv");
FileReader reader = new FileReader(f);
CsvReader<Customer> csvReader = DB.createCsvReader(Customer.class);
csvReader.setPersistBatchSize(20);
csvReader.addProperty("status");
// ignore the next property
csvReader.addIgnore();
csvReader.addProperty("name");
csvReader.addDateTime("anniversary", "dd-MMM-yyyy");
csvReader.addProperty("billingAddress.line1");
csvReader.addProperty("billingAddress.city");
csvReader.process(reader);
} catch (Exception e) {
throw new RuntimeException(e);
}
Modifier and Type | Method and Description |
---|---|
void |
addDateTime(String propertyName,
String dateTimeFormat)
Add a property with a custom Date/Time/Timestamp format using the default
Locale.
|
void |
addDateTime(String propertyName,
String dateTimeFormat,
Locale locale)
Add a property with a custom Date/Time/Timestamp format.
|
void |
addIgnore()
Ignore the next column of data.
|
void |
addProperty(String propertyName)
Define the property which will be loaded from the next column of data.
|
void |
addProperty(String propertyName,
StringParser parser)
Define the next property and use a custom StringParser to convert the
string content into the appropriate type for the property.
|
void |
process(Reader reader)
Automatically create a transaction if required to process all the CSV
content from the reader.
|
void |
process(Reader reader,
CsvCallback<T> callback)
Process the CSV content passing the bean to the CsvCallback after each row.
|
void |
setAddPropertiesFromHeader()
Same as setHasHeader(true,true);
|
void |
setDefaultDateFormat(String defaultDateFormat)
Set the default format to use for Date types.
|
void |
setDefaultLocale(Locale defaultLocale)
Explicitly set the default Locale.
|
void |
setDefaultTimeFormat(String defaultTimeFormat)
Set the default format to use for Time types.
|
void |
setDefaultTimestampFormat(String defaultTimestampFormat)
Set the default format to use for Timestamp types.
|
void |
setHasHeader(boolean hasHeader,
boolean addPropertiesFromHeader)
Set to true if there is a header row that should be ignored.
|
void |
setIgnoreHeader()
Same as setHasHeader(true, false);
|
void |
setLogInfoFrequency(int logInfoFrequency)
Set the frequency with which a INFO message will be logged showing the
progress of the processing.
|
void |
setPersistBatchSize(int persistBatchSize)
Set the batch size for using JDBC statement batching.
|
void setDefaultLocale(Locale defaultLocale)
void setDefaultTimeFormat(String defaultTimeFormat)
void setDefaultDateFormat(String defaultDateFormat)
void setDefaultTimestampFormat(String defaultTimestampFormat)
void setPersistBatchSize(int persistBatchSize)
By default this is set to 20 and setting this to 1 will disable the use of JDBC statement batching.
void setHasHeader(boolean hasHeader, boolean addPropertiesFromHeader)
If addPropertiesFromHeader is true then all the properties are added using the default time,date and timestamp formats.
If you have a mix of dateTime formats you can not use this method and must add the properties yourself.
void setAddPropertiesFromHeader()
This will use a header to define all the properties to load using the default formats for time, date and datetime types.
void setIgnoreHeader()
This indicates that there is a header but that it should be ignored.
void setLogInfoFrequency(int logInfoFrequency)
If this is not set then no INFO messages will be logged.
void addIgnore()
void addProperty(String propertyName)
This takes into account the data type of the property and handles the String to object conversion automatically.
void addProperty(String propertyName, StringParser parser)
void addDateTime(String propertyName, String dateTimeFormat)
void addDateTime(String propertyName, String dateTimeFormat, Locale locale)
void process(Reader reader) throws Exception
This will check for a current transaction. If there is no current transaction then one is started and will commit (or rollback) at the end of processing. This will also set the persistBatchSize on the transaction.
Exception
void process(Reader reader, CsvCallback<T> callback) throws Exception
This provides you with the ability to modify and process the bean.
When using a CsvCallback the reader WILL NOT create a transaction or save the bean(s) for you. If you want to insert the processed beans you must create your own transaction and save the bean(s) yourself.
Exception
Copyright © 2019. All rights reserved.