利用spring訪問資料庫是我們ssh程式中必不可少的步驟,在沒有hibernate之前,我們一般都用jdbc訪問資料庫,所以用jdbc訪問資料庫必不可少的要進行一些配置,spring中為我們提供了訪問資料庫的資料來源配置,配置完以後我們就可以很容易的利用jdbc對資料庫進行訪問了。下面我們就具體來看一下spring所支援的集中jdbc資料來源的配置:
在Sping的設定檔中,關於dataSource的配置,就我們常用的方法大致可以有三種:
1、一般的配置方法,直接在配置中指定其值。具體的例子我們參照Mysql的配置如下:
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> com.mysql.jdbc.Driver </property> <property name="url"> dbc:mysql://localhost:3306/dataBase </property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean>
2.、通過讀取檔案資訊資源,其原理與方法一相同。樣本:
<bean id="preferences" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="location"> <value>/WEB-INF/files.properties</value> <!-- 指定檔案路徑 --> </property> </bean> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>${driverClassName}</value> <!-- 這裡的值要通過${}進行轉義,其driverClassName參數要在上面的檔案中指定 --> </property> <property name="url"> <value>${url}</value> </property> <property name="username" value="${userName}"></property> <property name="password" value="${userPwd}"></property> </bean> 3、通過資料連線池。在此我們只需指定jndiName的值為伺服器中配置的資料連線池的JNDI名稱即可。 <bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="jdbc/mysql"></property> </bean>
在上述方法配置成功之後,我們可以通過JdbcTemplate把dataSource注入到JdbcTemplate裡面
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref bean="datasource" /> </property> </bean>
配置完這些之後我們就可以利用JdbcTemplate來訪問資料庫了。利用JdbcTemplate訪問資料庫要比一般的jdbc訪問資料庫方便的多,也簡單的多,直接調用相關的訪問就OK了,也不用管什麼關閉和開啟連結。下面我們就以一個儲存使用者執行個體來簡單看一下JdbcTemplate的基本用法:
public class UserDAO { private JdbcTemplate jdbcTemplate; public DataSource getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate= jdbcTemplate; }public void insertUser(User user) { String username = user.getUsername(); String password = user.getPassword(); String email = user.getEmail(); jdbcTemplate.update("insert into user(username,password,email) values ('" + username + "','" + password + "','" + email + "');"); }}
我們看一下在beans.xml中對userdao的基本配置:
<bean id="userDAO" class="com.demo.spring.dao.UserDAO"> <property name="jdbcTemplate"> <ref local="jdbcTemplate" /> </property> </bean>
好了,這樣就可以利用spring給我們提供的API進行JDBC訪問資料庫了,這個知識點比較簡單,我們就先說到這。