我想创建一个没有任何依赖的Java库,但它需要使用嵌入式SQL数据库。把二进制数据库文件和访问它的驱动程序打包到JAR文件中是一个好的做法吗?有哪些优缺点?
越来越多的Java应用程序在启动时都有自己的“内存”数据库。可以查看hsqldb作为一个例子。 最明显的优点是您可以控制数据库,而不必考虑不同的DB服务器和它们的sql方言。
继续,这是一个广泛采用的实践,例如 Hibernate。
对于内存受限设备:
那么根本不要使用嵌入式数据库。尝试使用ThoughtWorks库XStream,将对象序列化/反序列化为XML / jSon,可以存储在文件中。这是一种非常有效的解决方案,具有小的内存占用。
你的数据库将是只读的(因为你无法在运行时重新打包jar文件)。如果这没问题,那就尽情使用吧 :)