小编jfu*_*jfu的帖子

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

我正在开发一个使用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>
Run Code Online (Sandbox Code Playgroud)

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

getJdbcTemplate().update(
  "insert into counts values(15)"
);
Run Code Online (Sandbox Code Playgroud)

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

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

如何解决这个问题(在我的代码中没有添加"手动"同步)?

java sqlite spring

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×1

spring ×1

sqlite ×1