Spring Boot 入門示例(五):Spring Boot 整合 C3P0 數據庫連接池

Spring Boot 整合 C3P0 數據庫連接池

本示例使用 C3P0 + DbUtils + SQLServer 進行整合來操作數據庫。

配置 C3P0 信息

  • application.properties
# SQLServer 數據庫配置信息
c3p0.jdbcUrl=jdbc:sqlserver://localhost:1433;DatabaseName=game
c3p0.user=gm
c3p0.password=root
c3p0.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
c3p0.minPoolSize=2
c3p0.maxPoolSize=10
c3p0.maxIdleTime=30
c3p0.checkoutTimeout=30000
c3p0.acquireIncrement=3
c3p0.maxStatements=1000
c3p0.initialPoolSize=3
c3p0.idleConnectionTestPeriod=60
c3p0.acquireRetryAttempts=30
c3p0.acquireRetryDelay=1000
c3p0.breakOnAcquireFailure=true
c3p0.breakAfterAcquireFailure=false
c3p0.testConnectionOnCheckout=false

引入 C3P0 和 SQLServer 依賴

<dependency>
    <groupId>c3p0</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.1.2</version>
</dependency>

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.0.0.jre8</version>
</dependency>
<!-- 引入 dbutils 依賴操作數據庫 -->
<dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.6</version>
</dependency>

創建 C3P0 配置類

@Configuration
public class C3p0Configuration {

    @Bean(name = "dataSource")
    @Primary // 用 @Primary 區分主數據源
    @ConfigurationProperties(prefix = "c3p0") // 指定配置文件中,前綴爲 c3p0 的屬性值
    public DataSource dataSource(){
        return DataSourceBuilder.create()
                .type(ComboPooledDataSource.class).build();
    }
}

創建 QueryRunner 對象

QueryRunner 中提供了對 SQL 語句操作的 API,不用我們手動寫操作數據庫的代碼,同時也無需編寫任何清理或資源泄漏防護代碼。

@Configuration
public class QueryRunnerConfiguration {

    @Autowired
    private DataSource dataSource;

    @Bean(name = "queryRunner")
    public QueryRunner queryRunner(){
        // 使用 SQlServer 數據庫時,pmdKnownBroken 要設置爲 true,否則在預編譯時的參數無法自動傳入
        return new QueryRunner(dataSource,true);
    }
}

注意

在使用 DbUtils 組件進行數據庫操作時,如果是操作 SQLServer 數據庫,在構建 QueryRunner 對象時,pmdKnownBroken 要設置爲 true,否則在預編譯時的參數無法自動傳入。

new QueryRunner(dataSource,true);

後記

由於自身能力有限,若有錯誤或者不當之處,還請大家批評指正,一起學習交流!

GitHub 源碼地址:springboot-c3p0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章