java + sqlite:如何以只读方式打开数据库?
Posted
技术标签:
【中文标题】java + sqlite:如何以只读方式打开数据库?【英文标题】:java + sqlite: how to open database as read-only? 【发布时间】:2011-06-02 05:42:33 【问题描述】:我有一个大型数据库,我想以只读模式打开...我正在使用 SQLiteJDBC,但不知道用什么来让它以只读模式工作。
谁能帮忙?
【问题讨论】:
【参考方案1】:Test 演示如何将连接设置为只读:
SQLiteConfig config = new SQLiteConfig();
config.setReadOnly(true);
Connection conn = DriverManager.getConnection("jdbc:sqlite:sample.db",
config.toProperties());
【讨论】:
???我从哪里获得 SQLiteConfig?从 SQLiteJDBC v056 中似乎看不到它。 谢谢,但不,它不是 SQLiteJDBC 标准版本的一部分。【参考方案2】:试试这个。
Properties config = new Properties();
config.setProperty("open_mode", "1"); //1 == readonly
Connection conn = DriverManager.getConnection("jdbc:sqlite:sample.db", config);
【讨论】:
【参考方案3】:只想补充一点,使用HikariCP时,需要两个数据源属性:
readOnly=true
dataSource.open_mode=1
【讨论】:
【参考方案4】:我的情况略有不同,但问题相同。如果您有使用 Hikari 的 Spring Boot 服务,则需要在 application.properties 中提供 2 个配置设置
spring.datasource.url=jdbc:sqlite:myDatabase.db?open_mode=1
spring.datasource.hikari.read-only=true
【讨论】:
【参考方案5】:我看到了你的帖子,这对我有帮助: 我建立了一个类似于此处列出的http://www.shoaibinamdar.in/blog/?p=313 的连接,但插入了
ds.setUrl("jdbc:sqlite::resource:"+
getClass().getResource("sample.db").toString());
我放了
ds.setUrl("jdbc:sqlite:resource/sample.db");
sample.db 进入 /myprojectname/resource/sample.db,资源位于与 /myprojectname/src/ 相同的目录 (myprojectname) 中
希望这对某人有所帮助
【讨论】:
以上是关于java + sqlite:如何以只读方式打开数据库?的主要内容,如果未能解决你的问题,请参考以下文章