`

【转】使用Spring的SimpleJdbcTemplate完成DAO操作

阅读更多

SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Object... args)public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)getJdbcOperations返回的是JdbcOperations(实现JdbcTemplate)getNamedParameterJdbcOperations返回的是NamedParameterJdbcOperations(实现是NamedParameterJdbcTemplate)

 

实例说明:

 

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;
    }
}

 

来自:http://hi.baidu.com/%C5%ED%BD%F0%BD%F0%BB%D4%BB%D4/blog/item/d9343f9114291b0fd31b7069.html

 

分享到:
评论

相关推荐

    使用Spring的SimpleJdbcTemplate完成DAO操作

    我的使用Spring的SimpleJdbcTemplate完成DAO操作实例 博文链接:https://zmx.iteye.com/blog/373749

    Spring中文帮助文档

    11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...

    Spring.3.x企业应用开发实战(完整版).part2

    经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...

    Spring API

    11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...

    Spring 2.0 开发参考手册

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...

    Spring3.x企业应用开发实战(完整版) part1

    经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...

    spring chm文档

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...

Global site tag (gtag.js) - Google Analytics