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>