Java 如何从mapDB数据库中检索数据,而不必每次都重写它?
我正在开发一个与 我需要在数据库中存储一些关于事件和用户的信息。 这是一个大学考试的项目,我们必须使用mapDB获取持久数据。 我们遇到的问题是,每次调用方法Java 如何从mapDB数据库中检索数据,而不必每次都重写它?,java,gwt,mapdb,Java,Gwt,Mapdb,我正在开发一个与 我需要在数据库中存储一些关于事件和用户的信息。 这是一个大学考试的项目,我们必须使用mapDB获取持久数据。 我们遇到的问题是,每次调用方法saveEventsToDB(),一个新的数据库就会覆盖以前创建的数据库 这是saveEventsToDB()方法: public void saveEventsToDB(Event event) { DB eventsDB = DBMaker.newFileDB(new File("eventsDB")).closeOnJvmSh
saveEventsToDB()
,一个新的数据库就会覆盖以前创建的数据库
这是saveEventsToDB()
方法:
public void saveEventsToDB(Event event) {
DB eventsDB = DBMaker.newFileDB(new File("eventsDB")).closeOnJvmShutdown().make();
Map<Integer, Event> map = eventsDB.getTreeMap("Events");
map.clear();
Set<Integer> keys = map.keySet();
int id=0;
for(int key : keys) {
id++;
}
map.put(id+1, event);
eventsDB.commit();
eventsDB.close();
}
但这是我们教授给我们的mapDB示例代码
mapDB文档说明newFileDB
:
创建或打开存储在文件中的数据库
但每次都会创建一个新的数据库,我们看到它使用一些断点并试图从数据库中提取数据,每次只返回一条记录
如果有人能帮忙,我将不胜感激。谢谢您的问题是,当您删除数据库中存储的数据时
map.clear()
此功能用于删除或删除地图中的记录。您不应该调用此函数。有时调用db.commit()。Mapdb有事务,未提交的数据将被丢弃。为什么要使用map.clear()?
map.clear()