【发布时间】:2012-10-04 11:13:40
【问题描述】:
我正在尝试将时间戳存储到 db4o 数据库中,但存储的时间戳与当前日期大不相同。
以下是示例输出:
1969-12-31 19:00:00.741
1969-12-31 19:00:00.772
2012-10-14 00:23:22.713
在我运行我的代码三次之后,之前存储的两个时间戳被存储为 1969-12-31 19:00:00.7xx。
这里是代码。
import java.sql.Timestamp;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.config.EmbeddedConfiguration;
public class dbTest {
public static void listResults(ObjectSet<Timestamp> results) {
for (Timestamp o : results) {
System.out.println(o);
}
}
public static void main(String[] args) {
EmbeddedConfiguration config = Db4oEmbedded.newConfiguration();
config.common().objectClass(Timestamp.class).storeTransientFields(true);
ObjectContainer container = Db4oEmbedded
.openFile(config, "timestamps.db4o");
try {
long now = System.currentTimeMillis();
container.store(new Timestamp(now));
final ObjectSet<Timestamp> results = container.query(Timestamp.class);
listResults(results);
}
finally {
container.close();
}
}
}
我阅读了以下两篇相关文章,但问题尚未解决。
请告诉我如何解决这个问题。谢谢。
【问题讨论】:
-
我应该将时间戳作为字符串类型存储到数据库中吗?每次程序从数据库中检索数据后,需要将字符串值转换为Timestamp对象。
-
我将这篇文章复制到page 的db4o 论坛。希望听到一些答案。谢谢。
标签: java timestamp field db4o transient