DbfEngine Java API
|
DbfEngine - A Java API to read, write xBase(DBASE, Foxpro dbf files). This API is pure lightweight library without memory consumption and any third party libraries. There are no java loggers and modern mappers. This DBF Java API is intended as engine for data exchange purposes. Features Engine is very small and fast. API for reading is made as iterator, API for writing is made as JDBC statement. It is allows to write compact Java code. See code samples below. Limitations This version was tested under MS Foxpro 2.6 without memo field support. Requirements DbfEngine requires JDK 1.5 or higher. Licensing DbfEngine is issued on under the GNU Lesser General Public License. For further information click here. Download You may download DbfEngine 1.02 version binary code here , source code here and all bundle here Latest online Javadoc you may see here. If you have any questions or suggestions please do not hesitate to ask me by email above. |
DbfEngine - это Java API для чтения, записи xBase(DBASE, Foxpro) файлов. API представляет собой легковесную библиотеку без сторонних библиотек и неоправданного поглощения памяти. Библиотека предназначена для решения задач обмена данными. В частности ее использует РКЦ флекс для чтения реестров платежей из банков и для выгрузки данных в сторону организаций. Особенности API очень компактная и быстрая в работе. В части чтения данных API выполнена как традиционный итератор, в части записи данных API выполнена как jdbc Statement. Все это позволяет писать компактный код. Смотрите примеры ниже. Ограничения Данная версия библиотеки проверена на dbf файлах MS Foxpro 2.6 без поддержки memo. Требования DbfEngine для своей работы требует JDK 1.5 или выше. Лицензирование API выпущена под лицензией LGPL. Загрузка Вы можете скачать бинарную библиотеку версии 1.02 здесь, а также ее исходный Java код или весь проект, включая javadoc Онлайн Javadoc API смотреть здесь. |
| Code sample for reading and writing below: | Ниже примеры чтения и записи dbf файлов |
public class
Fp26Reader {
private static void testRead() {
DbfIterator dbfIterator = DbfEngine.getReader(
Fp26Reader.class.getResourceAsStream("FP_26_SAMPLE.DBF"), null);
while
(dbfIterator.hasMoreRecords()) {
DbfRecord dbfRecord =
dbfIterator.nextRecord();
String string = dbfRecord.getString("string");
float sumFloat =
dbfRecord.getFloat("sum_f");
BigDecimal sumNumeric =
dbfRecord.getBigDecimal("sum_n");
boolean bool =
dbfRecord.getBoolean("bool_val");
Date date = dbfRecord.getDate("date_val");
System.out.println(string + " " + sumFloat + " " +
sumNumeric + " "
+
bool + " " + date);
}
}
public static void main(String[]
args) {
Fp26Reader.testRead();
}
}
public class
Fp26Writer {
private static void testWrite() {
DbfAppender dbfAppender = DbfEngine.getWriter("WRT_PERSON.DBF", DbfCodePages.Cp866);
DbfColumn dc01 = new DbfColumn("magic", DbfColumnTypes.Logical, 0, 0);
DbfColumn dc02 = new DbfColumn("actor", DbfColumnTypes.Character, 60, 0);
DbfColumn dc03 = new DbfColumn("currdate", DbfColumnTypes.Date, 0, 0);
DbfColumn dc04 = new DbfColumn("hit", DbfColumnTypes.Numeric, 10, 2);
DbfColumn dc05 = new DbfColumn("forever", DbfColumnTypes.Logical, 0, 0);
dbfAppender.defineColumns(dc01,dc02, dc03,
dc04, dc05);
DbfStatement statement =
dbfAppender.getStatement();
statement.setString("actor", "Chuck Norris");
statement.setDate("currdate", new Date());
statement.setBigDecimal("hit", new BigDecimal("500.5"));
statement.insertStatement();
statement.setBoolean("magic", Boolean.TRUE);
statement.setString("actor", "Bruce Lee");
statement.setBigDecimal("hit", new BigDecimal("1000.10"));
statement.setBoolean("forever", Boolean.TRUE);
statement.insertStatement();
dbfAppender.writeDbfAndClose();
}
public static void main(String[]
args) {
Fp26Writer.testWrite();
}
}