SQLite 是最适合用于嵌入式数据库的东西吗? [复制]

2023-12-02

我需要构建一个将安装在 Linux 服务器上的 Java 应用程序。

当人们安装时,他们只需要安装这个应用程序,启动它,仅此而已。但我们有一些数据需要保存。

  • 我对MySQL说不,因为它需要服务器。
  • 我对 XML 说不,因为确实需要保存和操作大量数据。

所以我正在寻找我认为最好的 SQLite。确实(如果我错了请阻止我),SQLite 不需要任何服务器? (只需安装最终的应用程序,SQLite 在我的应用程序中就可以正常工作?)

然后我检查了http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers我真的有点困惑。

  • 包装器和驱动程序有什么区别?
  • 另外我看到存在一个“纯java实现”:SQLJet它或多或少是优化的吗?
  • 最后,在我的情况下你会用什么?

另一个要考虑的数据库是H2。它是一个完全用 Java 编写的嵌入式数据库引擎,因此您可以享受 Sqlite 提供的完整 unicode(16 位)字符支持的好处not有。其他嵌入式数据库有HSQLDB and Derby.

sqlite 对服务器不需要任何要求吗?

正确的。它不是。 H2 也没有。

只需安装最终的应用程序,sqlite 在我的应用程序中可以正常工作吗?

正确的。只要您在 WAR 中包含 Sqlite 或 H2(或将其解压到 jar 中),它就可以正常工作。

包装器和驱动程序有什么区别?

取决于用途。我认为 Sqlite 正在谈论这样一个事实:当您使用 Sqlite 的 JDBC 驱动程序时,它实际上是驱动程序内 Sqlite C 本机库的包装。通常,JDBC 驱动程序与远程数据库进行通信。

H2 也是这样,“驱动程序”实际上执行数据库操作,只是它是用 Java 编写的,因此您不需要 C 包装器。

另外我看到存在一个“纯java实现”:SQLJet它或多或少是优化的吗?

这是我第一次听说 Sqljet,所以我不确定。这Xerial Sqlite 驱动程序这是我用过的,它的性能似乎不错。

最后,在我的情况下你会用什么?

我自己会使用 H2 来实现本机 Java 功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLite 是最适合用于嵌入式数据库的东西吗? [复制] 的相关文章

  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • 无法让远程 EJB 与 Wildfly 上的 EJB 客户端 API 配合使用

    我目前正在努力让远程 EJB 调用在 wildfly 8 x 和 9 x 上工作 详细来说 它是关于使用 EJB 客户端 API 方法从独立客户端应用程序 而不是从另一个应用程序服务器 进行远程调用 远程命名方法适用于我 但不适用于我的场景
  • 为什么Java HashMap的最大容量是1<<30而不是1<<31?

    Why is the maximum capacity of a Java HashMap 1 lt lt 30 and not 1 lt lt 31 even though the max value of an int is 231 1
  • 如何在JUnit测试中将MockWebServer端口设置为WebClient?

    我在用着spring boot with WebClient 它被自动装配为一个 bean 问题 写一个junit集成测试 我必须使用okhttpMockWebServer 该模拟始终在随机端口上启动 例如localhost 14321 N
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • 如何使用 JAVA 和 ADB 命令检查 Appium 中键盘是否打开

    我正在尝试检查 Android 默认键盘是否打开 我没有找到任何可以在 Appium 中使用 JAVA 和 ADB 命令检查键盘的内容 我发现这个 ADB 命令可以检查键盘是否打开 adb shell dumpsys input metho
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

    我有一个 Spring 3 JPA 2 0 应用程序 在我的 Controller我需要一个初始化的对象 但我有代理 我需要能够以编程方式初始化它 我需要类似的功能org hibernate Hibernate initialize Obj
  • 我们可以用java定制一个垃圾收集器吗?

    我们知道java的垃圾收集器是一个低优先级线程 在java中我们可以创建任何具有高优先级的线程 那么是否有可能拥有我们自己定制的具有可变优先级的垃圾收集器线程 我们可以根据内存管理的级别进行设置 有人尝试过吗 如果是的话 您能分享一些关于如
  • Java 8 Stream - 为什么过滤器方法不执行? [复制]

    这个问题在这里已经有答案了 我正在学习使用java流进行过滤 但是过滤后的流没有打印任何内容 我认为过滤器方法没有被执行 我的过滤代码如下 Stream of d2 a2 b1 b3 c filter s gt s startsWith b
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • Web服务连接超时和请求超时之间的区别

    WebClientTestService service new WebClientTestService int connectionTimeOutInMs 5000 Map
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • 如何使用 AEM 解析 org.apache.http.ssl?

    最终 我尝试在 Java 代码中使用 AWS S3 库来通过 AEM 启用服务器端 S3 上传 但在安装依赖项和 或由 AEM 识别时遇到了问题 每次我添加新的依赖项时 都会弹出五个问题 在我尝试构建的这个包中 这是我看到的错误 The i
  • 在测试期间调用预定方法[重复]

    这个问题在这里已经有答案了 我正在使用 Maven 开发 SpringBoot 应用程序 我有一个班级 Component有方法的注释m与 Scheduled initialDelay 1000 fixedDelay 5000 注解 这里f
  • 在 Vavr 中结合任一者?

    我有几个Vavr https www vavr io Either https www vavr io vavr docs either的 我想调用一个函数Right每个 Either 的值 例如 Either
  • 生成签名和加密的 JWT

    我正在尝试使用生成签名和加密的 JWT 令牌雨云智威汤逊 http connect2id com products nimbus jose jwt private void generateToken throws JOSEExceptio

随机推荐

  • 从扫描仪获取字符输入

    我正在尝试找到一种方法char从键盘输入 我尝试使用 Scanner reader new Scanner System in char c reader nextChar 这个方法不存在 我尝试服用c as a String 然而 它并不
  • jQuery.proxy() 用法

    我正在阅读有关的 apijQuery proxy 它看起来很有希望 但我想知道在什么情况下最好使用它 谁能启发我吗 当你想要一个具有以下功能的函数时this值绑定到特定对象 例如 在事件处理程序 AJAX 回调 超时 间隔 自定义对象等回调
  • usleep() 计算经过的时间表现得很奇怪

    我使用下面的代码计算每次连续调用处理程序函数所花费的时间 以毫秒为单位 当我使用 usleep 1000 时 即每次调用之间的 1 毫秒时间差为 10 毫秒 而当我使用 usleep 1000000 时 即 1 秒 每次调用之间的时间间隔令
  • 覆盖从另一个模块导入的函数中的全局变量

    假设我有两个模块 a py value 3 def x return value b py from a import x value 4 我的目标是使用以下功能a x in b 但更改函数返回的值 具体来说 value将被查找a作为全局名
  • 删除事件发生时从 Microsoft Graph 获取通知

    我已经订阅了活动 https outlook office com api v2 0 me events 推送通知 当我删除重复主事件的一个事件时 我收到带有主事件 ID 的更新通知 而不是特定发生事件 ID 如果不与所有以前的重复事件进行
  • 使用命名实体训练模型

    我正在使用命名实体识别器查看standford corenlp 我有不同类型的输入文本 我需要将其标记到我自己的实体中 所以我开始训练我自己的模型 但它似乎不起作用 例如 我的输入文本字符串是 Book of 49 Magazine Art
  • Setter.Target 给我一个错误“RelativePanel.AlignHorizo​​ntalCenterWithPanel”

    我正在开发一个 UWP 应用程序 我正在使用 Template10 我有一个TextBlock 在VisualStateNarrow我要它RelativePanel AlignVerticalCenterWithPanel True and
  • 令人惊讶的是,达夫尼未能验证集合理解的有界性

    Dafny 对于集合交集函数的定义没有任何问题 function method intersection A set
  • Android:如何控制主页按钮

    我们正在尝试为我邻居的精神和身体残疾的女儿提供一个应用程序 让她使用 Android 平板电脑作为说话者 也就是说 她按下几个大按钮 设备就会生成语音 该应用程序基本上是一个 WebView 和一个 Javascript 中的附加对象 用于
  • Python - 尽管使用 df.loc 但仍获取“SettingWithCopyWarning”

    尽管使用了推荐的方法 我还是收到了SettingWithCopyWarning 我缺少什么 我该如何纠正它或抑制这个特定的警告 import numpy as np import pandas as pd df pd DataFrame n
  • 如何在 Django 中创建一个查询集来查看数据库中的名称是否是我的查询字符串的子字符串?

    正如标题所提到的 我正在 Django 中工作 并尝试创建一个查询集来返回所有名称值是我的 query string 的子字符串的 客户 模型 我想要这样的东西 Customer objects filter firstName icont
  • 编写 ruby​​gems 的陷阱

    已有问题及答案how to writerubygem 但是在编写 ruby gem 时应该避免什么 什么会给使用您的 ruby gem 的人带来问题 宝石包装 最佳实践给出了很多建议 其中一些包括 不要污染全局加载路径 理想情况下 只有fo
  • SceneKit SCNPhysicsBody 收到休息通知

    SceneKit有没有办法在什么时候收到通知dynamicBody处于休息状态 我想删除dynamicBody当它落到地面并完全停止移动时 我想我会有相当多的那些 所以我想使用基于事件的东西 而不是循环遍历所有bodies并检查它们的速度
  • WinHttpRequest gzip 响应解析

    我在用着MSXML2 XMLHTTP60在我的 VBA 项目中进行 http 冲浪 问题是MSXML2 XMLHTTP60仅限于四个并发请求 我正在尝试使用WinHttp WinHttpRequest 5 1相反 还有另一个问题 MSXML
  • 根据两个数组的差异创建第三个数组

    我需要根据两个数组的差异创建第三个数组 我根本无法理解这个逻辑 正确的第三个数组v3将是 来自下面的代码 v3 Carol Ted Thor Freya Thanks Sub MatchArrays Dim v1 v2 v3 Dim i A
  • 在 VBScript 中设置当前日期和时间的格式

    我想知道是否有人可以帮助我 我对 ASP 很陌生 我想按如下方式设置当前日期和时间的格式 yyyy mm dd hh mm ss 但我能做的就是以下 Response Write Date 有人可以帮我吗 默认情况下 Classic ASP
  • 三星 Galaxy Note III 模拟器设置

    我正在将我的 iPhone 应用程序移植到 Android 客户端使用三星 Galaxy Note III 我需要创建一个模拟器来帮助调试 但在使用我获得的设置启动模拟器时遇到问题gsmarena 类似的帖子也有 不过都是Samsung G
  • php SoapClient 在传递具有相对路径模式的 wsdl 时失败

    我有以下问题 当我向 SoapClient 对象传递一个使用相对路径导入架构的 wsdl 时 它的实例化失败 无论如何 根据我的研究 我相信情况确实如此 我的代码如下 wsdl http myproxy webservice wsdl op
  • 使用有限的操作对双端队列进行排序?

    您好 我在 Robert Sedgewick 的 算法第四版 中遇到了一个问题 出队排序 解释如何对一副牌进行排序 但唯一允许的操作是查看最上面两张牌的值 交换最上面两张牌以及将最上面的牌移动到这副牌的底部 我希望有人能解释一下这是如何完成
  • SQLite 是最适合用于嵌入式数据库的东西吗? [复制]

    这个问题在这里已经有答案了 我需要构建一个将安装在 Linux 服务器上的 Java 应用程序 当人们安装时 他们只需要安装这个应用程序 启动它 仅此而已 但我们有一些数据需要保存 我对MySQL说不 因为它需要服务器 我对 XML 说不