spring + SQLite在多线程应用程序中

2024-04-14

我正在开发一个使用 SQLite 数据库和 spring 的应用程序。当多个线程尝试修改数据库时遇到问题 - 我收到错误:

“数据库文件被锁定”

我配置了一个数据源:

<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" 
        destroy-method="close" lazy-init="true">
    <property name="driverClassName" value="org.sqlite.JDBC" />
    <property name="url" value="jdbc:sqlite:sample.db" />
    <property name="initialSize" value="2" />
    <property name="maxActive" value="20" />
    <property name="maxIdle" value="5" />
    <property name="poolPreparedStatements" value="true" />
</bean>

在每个线程中,我都有一个单独的 JdbcDaoSupport 实例,用于执行对数据库的插入:

getJdbcTemplate().update(
  "insert into counts values(15)"
);

执行数据库更新的函数是事务性的(我已经尝试了所有隔离级别,在每种情况下我都会得到相同的错误)。

当使用其他数据库(MySql)时,相同的代码可以正常工作。

我该如何解决这个问题(不在我的代码中添加“手动”同步)?


我还没有尝试过,但我建议,鉴于 SQLite 一次仅支持一个连接,您应该将数据源配置为仅创建一个连接。

我认为这会像下面这样......

<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" lazy-init="true">
    <property name="driverClassName" value="org.sqlite.JDBC" />
    <property name="url" value="jdbc:sqlite:sample.db" /> <
    <property name="initialSize" value="1" />
    <property name="maxActive" value="1" />
    <property name="maxIdle" value="1" />
    <property name="poolPreparedStatements" value="true" />
</bean>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring + SQLite在多线程应用程序中 的相关文章

  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 是否有任何简单(且最新)的 Java 框架可用于在 Swing 应用程序中嵌入电影?

    我正在构建一个小型 Swing 应用程序 我想在其中嵌入一部电影 重要的是 这个应用程序是一个 WebStart 应用程序 并且该库应该能够打包在我启动的 jnlp 中 即 不依赖于本机库 我知道并尝试过 JMF 但我认为与其他框架相比 其
  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • 如何避免 ArrayIndexOutOfBoundsException 或 IndexOutOfBoundsException? [复制]

    这个问题在这里已经有答案了 如果你的问题是我得到了java lang ArrayIndexOutOfBoundsException在我的代码中 我不明白为什么会发生这种情况 这意味着什么以及如何避免它 这应该是最全面的典范 https me
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 如何在 Java 中创建接受多个值的单个注释

    我有一个名为 Retention RetentionPolicy SOURCE Target ElementType METHOD public interface JIRA The Key Bug number JIRA referenc
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • 配置“DataSource”以使用 SSL/TLS 加密连接到 Digital Ocean 上的托管 Postgres 服务器

    我正在尝试托管数据库服务 https www digitalocean com products managed databases on 数字海洋网 https en wikipedia org wiki DigitalOcean 创建了
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • 我应该在 OBDII 的 BLE IOS 设备中使用什么 BLE 特性

    您好 我想知道我应该从这个 OBDII BLE 设备 加密狗中使用什么写入和通知特性 我想在 Flutter 中创建一个适用于 IOS 的程序 有不少 Device name VEEPEAK Device id 34E2B2AF 60F4
  • 更改值结转次数的 maxgap

    我有一个类似于以下内容的数据框 library data table test lt data table data frame value c 5 NA 8 NA NA 8 6 NA NA 10 locf N c 1 NA 1 NA NA
  • google.script.run.withSuccessHandler() 返回未定义

    我使用下面提供的代码在单独的 GS 文件中创建了一个数组 我尝试在 HTML 文件中调用它 我的目标是将数组的内容与参数进行比较email 但是 返回的值google script run withSuccessHandler is und
  • 来自浏览器的带有正文的异步 GET 请求

    好吧 我知道这是一个坏主意 不应该这样做 但为了这个问题 请假设没有其他方法 我得到的 API 端点需要以空对象作为主体的 GET 请求 有没有办法从浏览器执行异步请求 我在用着axios使用的库XMLHttpRequest在引擎盖下和MD
  • 如何在Qt中暂时断开与插槽的信号?

    我用信号连接一个插槽 但现在我想暂时断开它们的连接 这是我的班级声明的一部分 class frmMain public QWidget private QTimer myReadTimer private slots void on btn
  • POST 请求(Javascript)

    如何在 Javascript 中发出简单的 POST 请求而不使用表单且不回发 虽然我从 sundeep 答案中获取代码示例 但为了完整性而将代码发布在此处 var url sample url php var params lorem i
  • 如何在 Django 1.8 中使用 jinja2 作为模板引擎

    我一直在研究如何在 django 1 8 中使用 jinja2 但是没有将 django 与 jinja2 一起使用的完整源代码 我想知道你们是否知道在 django 中使用 jinja2 的过程 我查看了官方文档并查看了以下问题 如何设置
  • 按 Option 键隐藏/显示应用程序主菜单中的菜单项

    我想在应用程序的主菜单中添加一个很少使用的菜单项 我希望它默认隐藏 仅当用户按住 Option 键时才显示 我该怎么做呢 看来我应该处理flagsChanged 但它是NSResponder的方法和NSMenu不继承自NSResponder
  • 为什么使用 boost 后 C++ 比 python 快得多?

    我的目标是用 Python 编写一个用于频谱有限元的小型库 为此我尝试使用 Boost 通过 C 库扩展 Python 希望它能让我的代码更快 class Quad public Quad int int double integrate
  • 将 TDD 与 Web 应用程序开发集成的最佳实践? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 单元测试和 ASP NET Web 应用程序在我的团队中是一个模棱两可的点 通常情况下 良好的测试实践会被忽视 Web 应用程序最终会在没有测试
  • 如何对库进行临时签名?

    尝试运行链接到动态库的可执行文件 出现以下错误 Library not loaded Reason tried
  • 为什么小于不起作用?

    这看起来很简单 但为什么这种比较不起作用呢 if nmax lt num nmax num 我把它放在一个循环中 寻找最大的数字 第一个数字是105 然后是89 然后是99 然后是一大堆大于99的数字 第一个数字是要测试的数字 第二个数字是
  • GWT:对RichTextArea进行文本限制并阻止用户输入更多字符

    我正在使用 GWT RixhText Area 并希望在 richText Area 中限制 100 个字符 现在我正在做这个 description addKeyDownHandler new KeyDownHandler Overrid
  • Elastic Beanstalk 剥离 Sec-WebSocket-Accept 标头

    我正在尝试让 NET Core 应用程序在 elastic beanstalk 上运行 以从浏览器中的 javascript 接收 websockets 连接 当我在本地计算机上测试 AWS 之外的客户端和服务器时 我能够在两者之间建立 W
  • 数据流:将 Top 模块与 Python SDK 结合使用:单元素 PCollection

    我正在查看 incubator beam 存储库上的 word counting py 示例 从数据流文档链接 我想修改它以获得n 出现次数最多的 这是我的管道 counts lines split gt gt beam ParDo Wor
  • Java中如何初始化日期类型变量?

    import java util Date Date firstDate 我不知道如何初始化firstDate例如对于你说的字符串 String line1 First line 但是日期的格式是什么 你能给我一个例子吗 以下是 Oracl
  • Python 中海量 numpy 数组的内存高效排序

    我需要使用 numpy 对非常大的基因组数据集进行排序 我有一个 26 亿个浮点数的数组 维度 868940742 3 加载后 它会占用我机器上大约 20GB 的内存 我有一台 2015 年初的 13 英寸 MacBook Pro 配备 1
  • 谷歌闭包编译器和json

    我有一个 json 字符串 我会解析它 然后使用点符号访问对象的属性 然而 在 google 闭包编译器中 点符号 MyObject PropertyName 给出该属性未定义的警告 目前 我使用的解决方案是将我的代码转换为括号表示法 My
  • Shouldly 断言库如何知道断言所应用到的表达式?

    The 适用于 NET 的 Shouldly 断言库 http shouldly readthedocs io en latest 以某种方式知道断言方法被调用的表达式 因此它能够将其显示到消息中 我试图找出它是如何工作的 但迷失在源代码中
  • spring + SQLite在多线程应用程序中

    我正在开发一个使用 SQLite 数据库和 spring 的应用程序 当多个线程尝试修改数据库时遇到问题 我收到错误 数据库文件被锁定 我配置了一个数据源