使用Jdbctemplate 对象来完成jdbc 操作。通常情况下,有三种方式得到JdbcTemplate 对象。
第一种方式:我们可以在自己定义的DAO 实现类中注入一个DataSource 引用来完 成JdbcTemplate 的实例化。也就是它是从外部“注入” DataSource 到DAO 中,然后 自己实例化JdbcTemplate,然后将DataSource 设置到JdbcTemplate 对象中。
- public class UserDaoImpl implements UserDao {
- private JdbcTemplate jdbcTemplate; //属性
- public JdbcTemplate getJdbcTemplate() {
- return jdbcTemplate;
- }
- //setXXX
- public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
- .........
- }
- <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
- <property name = "dataSource" ref="dataSource"> <!--must datasource
- </bean>
- <bean id="userDao" class="com.hlx.jdbc.impl.UserDaoImpl">
- <property name="jdbcTemplate" ref="jdbcTemplate"/> <!--DI jdbcTemplate
- </bean>
第二种方式: 在 Spring 的 IoC 容器中配置一个 JdbcTemplate 的 bean,将 DataSource 注入进来,然后再把JdbcTemplate 注入到自定义DAO 中。
- public class UserDaoImpl implements UserDao {
- private JdbcTemplate jdbcTemplate; //属性
- //注入方法2
- public void setDataSource(DataSource dataSource) {
- this.jdbcTemplate = new JdbcTemplate(dataSource);
- }
- .......
- }
- <bean id="userDaoImpl" class="com.hlx.jdbc.impl.UserDaoImpl">
- <property name="dataSource" ref="dataSource"/> <!--DI datasource -->
- </bean>
第三种方式: Spring 提供了 org.springframework.jdbc.core.support.JdbcDaoSupport 类 , 这 个 类 中 定 义 了 JdbcTemplate 属性,也定义了DataSource 属性,当设置DataSource 属性的时候,会创 建jdbcTemplate 的实例,所以我们自己编写的DAO 只需要继承JdbcDaoSupport 类, 然后注入DataSource 即可。提倡采用第三种方法。虽然下面的用法中采用了前两种方法
继承JdbcDaoSupport,其内部有个JdbcTemplate ,需要注入DataSource 属性来实例化。
- public class UserDaoImpl extends JdbcDaoSupport implements UserDao {
- @Override
- public void save(User user) {
- String sql = null;
- this.getJdbcTemplate().update(sql);
- }
- }
- <bean id="userDaoImpl" class="com.hlx.jdbc.impl.UserDaoImpl">
- <property name="dataSource" ref="dataSource"/> <!--must datasource -->
- </bean>