在c3p0连接池中设置SQLite连接属性

2023-12-03

要指定 SQLite 连接属性,有 org.sqlite.SQLiteConfig ,它是这样的:

    org.sqlite.SQLiteConfig config = new org.sqlite.SQLiteConfig();
    config.setReadOnly(true);
    config.setPageSize(4096); //in bytes
    config.setCacheSize(2000); //number of pages
    config.setSynchronous(SQLiteConfig.SynchronousMode.OFF);
    config.setJournalMode(SQLiteConfig.JournalMode.OFF);
    SQLiteConnectionPoolDataSource dataSource = new SQLiteConnectionPoolDataSource();

使用 c3p0 创建连接池的过程如下:

        ComboPooledDataSource cpds = new ComboPooledDataSource();
        cpds.setDriverClass("org.sqlite.JDBC");
        cpds.setJdbcUrl("jdbc:sqlite:/foo/bar");
        cpds.setMaxPoolSize(10);

问题:如何创建一个将两者结合起来的 DataSource,让我可以设置连接池的 max-pool-size 和 sqlite 的同步模式等内容?


Try

//put the imports where they really go, obviously...
import javax.sql.*;
import org.sqlite.*;
import com.mchange.v2.c3p0.*;

// configure SQLite
SQLiteConfig config = new org.sqlite.SQLiteConfig();
config.setReadOnly(true);
config.setPageSize(4096); //in bytes
config.setCacheSize(2000); //number of pages
config.setSynchronous(SQLiteConfig.SynchronousMode.OFF);
config.setJournalMode(SQLiteConfig.JournalMode.OFF);

// get an unpooled SQLite DataSource with the desired configuration
SQLiteDataSource unpooled = new SQLiteDataSource( config );

// get a pooled c3p0 DataSource that wraps the unpooled SQLite DataSource
DataSource pooled = DataSources.pooledDataSource( unpooled );

数据源pooled现在将是一个 c3p0 PooledDataSource,它包装了一个已根据您的意愿配置的 SQLite 非池数据源。

请参阅 c3p0 的文档,“使用 DataSources 工厂类”,以及 API 文档数据源工厂类。

另请参阅我从以下位置下载的 SQLite JDBC 的 javadocshere来回答这个问题。

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

在c3p0连接池中设置SQLite连接属性 的相关文章

随机推荐