首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

应用Spring的SimpleJdbcTemplate完成DAO操作

2012-10-26 
使用Spring的SimpleJdbcTemplate完成DAO操作public class StuDaoImple implements StuDaointer {??? priva

使用Spring的SimpleJdbcTemplate完成DAO操作

public class StuDaoImple implements StuDaointer {

??? private SimpleJdbcTemplate simplejdbctemp;

??? public StuDaoImple(){

?????? simplejdbctemp=new SimpleJdbcTemplate(SQLConnUtil.getDataSource());

??? }// SQLConnUtil为JDBC工具类,提供了得到数据源的静态方法

??? /*

??? ?* 可以通过SimpleJdbcTemplate得到NamedParameterJdbcTemplate或JdbcTemplate

??? ?*/

??? public void AddStu(Stu stu){

?????? String sql="insert into stu values(:sname,:ssex,:sbrith)";

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? KeyHolder key=new GeneratedKeyHolder();

?????? this.simplejdbctemp.getNamedParameterJdbcOperations().update(sql, ps, key);

?????? System.out.println(key.getKey().intValue());

??? }

??? /* SimpleJdbcTemplate的第一个好处:

??? ?* SimpleJdbcTemplate的update方法中参数是动态的,但是只能用?代替参数

??? ?*/

??? public void DelStu(int id){

?????? String sql="delete stu where s_id=?";

?????? simplejdbctemp.update(sql, id);

??? }

??? /*

??? ?* SimpleJdbcTemplate的update方法中参数是动态的,它的个数是动态的

??? ?*/

??? public void UpdStu(Stu stu){

?????? String sql="update stu set s_name=?,s_sex=?,s_brith=? where s_id=?";

?????? simplejdbctemp.update(sql, stu.getSname(),stu.getSsex(),stu.getSbrith(),stu.getSid());

??? }

??? /*

??? ?* SimpleJdbcTemplate的第二个好处:

??? ?* SimpleJdbcTemplate的queryForObject方法可以直接返回Stu对象,不用转换

??? ?*/

??? public Stu getone(int id){

?????? String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";

?????? Stu stu=simplejdbctemp.queryForObject(sql, ParameterizedBeanPropertyRowMapper.newInstance(Stu.class), id);

?????? return stu;

??? }

??? public List getall(){

?????? String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu";

?????? List list=simplejdbctemp.getJdbcOperations().query(sql, new BeanPropertyRowMapper(Stu.class));

?????? return list;

??? }

}

public void AddStu(Stu stu){ String sql="insert into stu values(:sname,:ssex,:sbrith)"; SqlParameterSource ps=new BeanPropertySqlParameterSource(stu); KeyHolder key=new GeneratedKeyHolder(); this.simplejdbctemp.getNamedParameterJdbcOperations().update(sql, ps, key); System.out.println(key.getKey().intValue()); }


用这个方法得到的主键.mysql好像不行?我第一次添加正确.比如我添加100行数据.然后我删除了这些数据.再进行插入时.取到的主键就是从101开始了.而不是回到原来的位置
这是数据库得到问题,ID字段是自加的不是插入的,mysql中只有将表清空后ID才会清零从头来

热点排行