Spring JdbcTemplate的配置及使用
阿新 • • 發佈:2019-01-08
相關文章
依賴的元件
<!-- 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>