2、通过模版类对应的支持类来使用JdbcTemaplate。<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="daoBase" abstract="true"> <property name="jdbcTemplate" ref="jdbcTemplate"></property> </bean> <bean id="studentDao" parent="daoBase" class="com.daoImpl.StudentDaoImpl"></bean>
<bean id="studentService" class="com.serviceImpl.StudentServiceImpl"> <property name="studentDao" ref="studentDao"></property> </bean>
public class BaseDao extends JdbcDaoSupport{ //公共方法 }
配置文件:public class TeacherDaoImpl extends BaseDao implements TeacherDao{ @Override public Student seacherStu(int id) { String sql="select * from student where id=?"; final Student student=new Student(); this.getJdbcTemplate().query(sql, new Object[]{id}, new RowCallbackHandler() { @Override public void processRow(ResultSet res) throws SQLException { student.setName(res.getString("name")); student.setSex(res.getString("sex")); student.setSay(res.getString("say")); } }); return student; } }
3、返回数据库表自增主键值<bean id="teacherDao" class="com.daoImpl.TeacherDaoImpl"> <property name="dataSource" ref="dataSource"></property> </bean>
<bean id="teacherService" class="com.serviceImpl.TeacherServiceImpl"> <property name="teacherDao" ref="teacherDao"></property> </bean>
public void addStudent(final Student student){
final String sql="insert into t_student(name,sex) values(?,?)";
//创建一个主键持有者
KeyHolder key=new GeneratedKeyHolder();
this.getJdbcTemplate().update(new PreparedStatementCreator(){
public PreparedStatement createPreparedStatement(Conection con) throws SQLException{
PreparedStatement preState=con.prepareStatement(sql);
preState.setString(1,student.getName());
preState.setString(2,student.getSex());
return preState;
}
},key);
//从主键持有者中获得主键值
student.setKey(key.getKey().intValue);
}