Jackcess is a pure Java library for reading from and writing to MS Access databases (currently supporting versions 2000-2013). It is part of the OpenHMS project from Health Market Science, Inc.. It is not an application. There is no GUI. It's a library, intended for other developers to use to build Java applications. Jackcess is licensed under the Apache License (as of version 2.1.0). Take a look at our Frequently Asked Questions for more info.
Due to the generosity of Health Market Science and the efforts of the Apache Tika project, the OpenHMS projects have been relicensed under the Apache License, Version 2.0 (Jackcess versions 2.1.0 and higher).
New crunchy outside, same yummy filling!
The Jackcess project has gotten a facelift. A long-overdue overhaul of the public API has been completed, and the major version number of the Jackess APi has been changed to 2.0 in order to indicate the non-backwards compatible nature of the changes (although the underlying functionality remains unchanged). Read the Upgrade Guide for full details.
Here are a few snippets of code to whet your appetite. For more extensive examples, checkout the cookbook. And, since Jackcess is heavily unit tested, you can find even more example code in the unit tests.
Table table = DatabaseBuilder.open(new File("my.mdb")).getTable("MyTable");
for(Row row : table) {
System.out.println("Column 'a' has value: " + row.get("a"));
}
Row row = CursorBuilder.findRow(table, Collections.singletonMap("a", "foo"));
if(row != null) {
System.out.println("Found row where 'a' == 'foo': " + row);
} else {
System.out.println("Could not find row where 'a' == 'foo'");
}
Database db = DatabaseBuilder.create(Database.FileFormat.V2000, new File("new.mdb"));
Table newTable = new TableBuilder("NewTable")
.addColumn(new ColumnBuilder("a")
.setSQLType(Types.INTEGER))
.addColumn(new ColumnBuilder("b")
.setSQLType(Types.VARCHAR))
.toTable(db);
newTable.addRow(1, "foo");
Database db = DatabaseBuilder.open(new File("my.mdb"));
new ImportUtil.Builder(db, "Imported").importResultSet(resultSet);
db.close();Database db = DatabaseBuilder.open(new File("my.mdb"));
new ImportUtil.Builder(db, "Imported2").setDelimiter(",").importFile(new File("my.csv"));
db.close();Some other jackcess related projects: