Spring4(6)——對DAO(JDBC)的支援(JdbcDaoSupport)
阿新 • • 發佈:2018-11-07
Spring 對 JDBC 的支援(JdbcDaoSupport)
dao類繼承 JdbcDaoSupport
public class StudentDaoImpl extends JdbcDaoSupport implements StudentDao{ ...... }
此時不需要自己定義 jdbcTemplate ,即
dao類中不再需要(刪除以下)
private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate; }
beans.xml 裡不再需要配置(刪除以下)
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean>
但需在 beans.xml 中將資料來源注入到dao配置(增加以下)
<beanid="studentDao" class="com.java1234.dao.impl.StudentDaoImpl"> <property name="dataSource" ref="dataSource"></property> </bean>
NamedParameterJdbcTemplate 的使用,支援命名引數變數;
beans.xml 裡配置
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource"></constructor-arg> </bean> <bean id="studentDao" class="com.java1234.dao.impl.StudentDaoImpl"> <property name="namedParameterJdbcTemplate" ref="namedParameterJdbcTemplate"></property> </bean>
Dao類
public class StudentDaoImpl implements StudentDao{ private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void setNamedParameterJdbcTemplate( NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } @Override public int addStudent(Student student) { String sql="insert into t_student values(null,:name,:age)"; //:name MapSqlParameterSource sps=new MapSqlParameterSource(); //使用MapSqlParameterSource sps.addValue("name", student.getName()); sps.addValue("age", student.getAge()); return namedParameterJdbcTemplate.update(sql,sps); } }