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

要指定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);

问题:如何创建结合了两者的数据源,让我设置诸如连接池的最大池大小和sqlite的同步模式之类的东西?

回答:

尝试

//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的文档,“使用数据源工厂类”,并为API文档数据源工厂类。

另请参阅我从此处下载的用于SQLite

JDBC的javadocs 来回答这个问题。

以上是 在c3p0连接池中设置SQLite连接属性 的全部内容, 来源链接: utcz.com/qa/415661.html

回到顶部