Spring4(6)——对DAO(JDBC)的支持(JdbcDaoSupport)

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配置(增加以下)

<bean id="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);
    }
}
 

猜你喜欢

转载自www.cnblogs.com/Cocoomg/p/9825372.html
今日推荐