1. 程式人生 > >Spring JdbcTemplate的配置及使用

Spring JdbcTemplate的配置及使用

相關文章

依賴的元件

<!-- SpringMVC -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>4.1.6.RELEASE</version>
</dependency>
<!-- druid連線池 -->
<dependency>
  <groupId>com.alibaba</groupId
>
<artifactId>druid</artifactId> <version>0.2.25</version> </dependency> <!-- mysql驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency>

資料庫配置

db.properties

url=jdbc:mysql://127.0.0.1:3306/databaseName
username=root
password=123456

mysql url 引數說明

名稱 說明
useUnicode 是否使用Unicode字符集,如果引數characterEncoding設定為gb2312或gbk,本引數值必須設定為true false
characterEncoding 當useUnicode設定為true時,指定字元編碼。比如可設定為gb2312或gbk
autoReconnect 當資料庫連線異常中斷時,是否自動重新連線?
autoReconnectForPools 是否使用針對資料庫連線池的重連策略
failOverReadOnly 自動重連成功後,連線是否設定為只讀?
maxReconnects autoReconnect設定為true時,重試連線的次數
initialTimeout autoReconnect設定為true時,兩次重連之間的時間間隔,單位:秒
connectTimeout 和資料庫伺服器建立socket連線時的超時,單位:毫秒。 0表示永不超時

Spring 配置

spring-jdbc.xml

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 載入配置檔案 -->
    <context:property-placeholder location="classpath:db.properties"/>

    <!-- 配置資料來源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <!-- 基本屬性url、user、password -->
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
        <!-- 配置初始化大小、最小、最大連線數 -->
        <property name="initialSize" value="5" />
        <property name="minIdle" value="5" />
        <property name="maxActive" value="20" />
        <!-- 配置獲取連線等待超時的時間 -->
        <property name="maxWait" value="60000" />
        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <!-- 配置一個連線在池中最小生存的時間,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />
        <!-- 配置驗證連線執行的SQL -->
        <property name="validationQuery" value="${validationQuery}" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />
        <!-- 開啟PSCache,並且指定每個連線上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
        <!-- 配置監控統計攔截的filters -->
        <property name="filters" value="stat" />
    </bean>

    <!-- 配置JdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>

Java原始碼

package com.sanban.website.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;


@Service
public class ExampleDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

}

JdbcTemplate具體方法請參考:JdbcTemplate

Druid網頁監控

啟用Druid的Web監控統計功能需要在web.xml新增

<!-- 配置Druid Web監控統計 -->
<servlet>
  <servlet-name>DruidStatView</servlet-name>
  <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>DruidStatView</servlet-name>
  <url-pattern>/druid/*</url-pattern>
</servlet-mapping>