Spring为我们提供了JDBC的模板来连接数据库,Spring JDBC Template.
使用:
第一,导入相关的jar包
第二,要连接数据库首先要加载驱动,获得连接,然后才能进行相关的数据库操作,由于连接对象的创建和销毁会浪费时间,所以我们采用连接池来对链接进行管理,将创建好的连接放入连接池使用时直接从连接池中取用完后还给链接池就可以,节省大量时间.而连接池我们一般使用C3P0连接池.
第三,我们使用Spring对连接池和连接对象进行控制反转也就是连接池和连接对象实例由Spring帮我们创建,所以我们要在Spring的配置文件applicationContext.xml中对c3p0连接池和连接对象就行实例化.
<!-- 创建c3p0连接池 -->
<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
//驱动
<property name="driverClass" value="${jdbc.driverClass}" />
//url
<property name="jdbcUrl" value="${jdbc.url}" />
//用户名
<property name="user" value="${jdbc.username}" />
//密码
<property name="password" value="${jdbc.password}" />
</bean>
<!—连接实例化-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!—注入-->
<property name="dataSource" ref="c3p0DataSource"></property>
</bean>
第四,一般不会直接操作持久层都会有service,所以我们需要在service层中注入持久层.
<!-- 创建c3p0连接池 -->
<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
//驱动
<property name="driverClass" value="${jdbc.driverClass}" />
//url
<property name="jdbcUrl" value="${jdbc.url}" />
//用户名
<property name="user" value="${jdbc.username}" />
//密码
<property name="password" value="${jdbc.password}" />
</bean>
<!-- service -->
<bean id="accountService" class="cn.itheima.service.AccountServiceImpl">
<!—setter注入 -->
<property name="accountDao" ref="accountDao"></property>
</bean>
<!-- dao -->
<bean id="accountDao" class="cn.itheima.dao.AccountDAOImpl">
<!—AccountDAOImpl必须继承JdbcDaoSupport 当注入dataSource后,底层会自动创建一个JdbcTemplate -->
<property name="dataSource" ref="c3p0DataSource" />
</bean>