我正在尝试自动创建.accdb数据库但是使用create()
函数出现编译错误:
我使用此SO答案中的代码: Create an Access database file (.mdb or .accdb) using Java
public class JackcessLibrary {
private static Database createDatabase(String databaseName) throws IOException {
return Database.create(new File(databaseName));
}
private static TableBuilder createTable(String tableName) {
return new TableBuilder(tableName);
}
public static void addColumn(Database database, TableBuilder tableName, String columnName, Types sqlType) throws SQLException, IOException {
tableName.addColumn(new ColumnBuilder(columnName).setSQLType(Types.INTEGER).toColumn()).toTable(database);
}
public static void startDatabaseProcess() throws IOException, SQLException {
String databaseName = "C:/Users/abdulwhab/Desktop/database/db.accdb"; // Creating an MS Access database
Database database = createDatabase(databaseName);
String tableName = "Employee"; // Creating table
Table table = createTable(tableName)
.addColumn(new ColumnBuilder("Emp_Id").setSQLType(Types.INTEGER).toColumn())
.addColumn(new ColumnBuilder("Emp_Name").setSQLType(Types.VARCHAR).toColumn())
.addColumn(new ColumnBuilder("Emp_Employer").setSQLType(Types.VARCHAR).toColumn())
.toTable(database);
table.addRow(122875, "Sarath Kumar Sivan","Infosys Limited.");//Inserting values into the table
}
public static void main(String[] args) throws IOException, SQLException {
JackcessLibrary.startDatabaseProcess();
}
}
答案 0 :(得分:3)
您使用Jackcess的全新版本2.1.3,而您链接的五年回答使用1.2.6。在介绍版本2时,Jackcess的API经历了一些更改。
在您使用的版本中,使用构建器创建数据库:
DatabaseBuilder.create(FileFormat, File)
有关如何使用Jackcess API的更多信息,请参阅http://jackcess.sourceforge.net/cookbook.html。
答案 1 :(得分:0)
为了其他人的清晰度和易用性,只需在数据库创建功能中进行以下更改
File file = new File("C:/Users/abdulwhab/Desktop/database/test.accdb");
Database db = new DatabaseBuilder(file).setFileFormat(Database.FileFormat.V2000).create();
return db;
注意:我没有将jackess jar文件版本改为前一版本。
除了代码之外没有制作任何内容:)