Spring JDBC【命名参数JDBC模板】【1.注入属性Template】【2.继承Support】

1.【注入方式】

  • Dao实现类【持有】NamedParameterJdbcTemplate
/**
 * 客户Dao实现类
 */
public class CustomerDaoImpl implements CustomerDao{

    private NamedParameterJdbcTemplate npjt;  // 持有对象

    //插入
    public void saveCustomer(Customer c) {
        String sql = "insert into customers(name,age) values(:name,:age)";
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", c.getName());
        paramMap.put("age", c.getAge());
        npjt.update(sql, paramMap);
    }
        //...
}

 

  • 配置文件
<!-- Spring 的  【命名参数】jdbc 模板 -->
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
    <constructor-arg name="dataSource" ref="c3p0DataSource"/>
</bean>
<!-- Dao实现类 -->
<bean id="customerDao" class="jdbc.CustomerDaoImpl">
    <property name="npjt" ref="namedParameterJdbcTemplate"/>
</bean>

 

2.继承【NamedParameterJdbcDaoSupport】方式 与 继承【JdbcDaoSupport】类似。

/**
 * 客户Dao实现类
 */
public class CustomerDaoImpl extends NamedParameterJdbcDaoSupport implements CustomerDao{

    //插入
    public void saveCustomer(Customer c) {
        String sql = "insert into customers(name,age) values(:name,:age)";
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", c.getName());
        paramMap.put("age", c.getAge());
        getNamedParameterJdbcTemplate().update(sql, paramMap);
    }
  //....
}
<!-- Dao实现类 【继承】【NamedParameterJdbcDaoSupport】后,配置【dataSource】即可  -->    
<bean id="customerDaoSupport" class="jdbc.CustomerDaoImpl">
    <!-- 将【数据源】【注入】到【基类的dataSource】即可 -->
    <property name="dataSource" ref="c3p0DataSource"/>
</bean>

 

 

posted @ 2013-12-17 11:54  聆听自由  阅读(662)  评论(0编辑  收藏  举报