spring对JDBC的支持

spring+JDBC

spring提供了对DAO层统一异常的处理
spring提供了一些抽象类来支持对DAO的编写
减少了对JDBC编写的代码量
Spring用一种方式使用各种数据访问技术:如:Hibernate、JDBC、MyBatis等
需要相关jar包:spring-core-3.2.8. RELEASE.jar;spring-context-3.2.8.RELEASE.jar;srping-beans-3.2.8.RELEASE.jar;spring-expression-3.2.8.RELEASE.jar;spring-jdbc-3.2.8.RELEASE.jar;spring-tx-3.2.8.RELEASE.jar;spring-webMVC-3.2.8.RELEASE.jar;commons-collections-3.1.jar;commons-logging.jar;commons-dbcp-1.2.2.jar;commons-pool.jar;

spring对DAO的异常处理

Spring把特定的异常转换为自己的异常类型,这些异常类型以DataAccessException为父类
DataAccessException继承于RuntimeException,是非检查异常
异常必须处理,可以用拦截器或者在界面统一处理

spring对DAO编写的支持

spring提供一套抽象的DAO类,这些类提供了一些获得与数据访问技术相关的数据源和其他配置信息的方法
JdbcTemplate:封装了常用JDBC方法
HibernateTemplate:封装hibernate常用的方法
JdbcDaoSupport:JDBC数据访问对象的基类
HibernateDaoSupport:hibernate数据访问对象的基类

使用JDBC技术

JdbcDaoSupport是用JDBC技术编写DAO的父类,通过该类可以获取Connection和JdbcTemplate
使用JdbcDaoSupport需要注入一个DataSource对象,但是它对代码有一定的侵入性
JdbcTemplate提供的主要方法:queryForInt()【不建议使用】、queryForObject()、query()、update()、execute()。

使用JDBC编写DAO组件的方法

1:DAO继承JdbcDaoSupport,通过getJdbcTemplate()获取JdbcTemplate对象,同时需要注入DataSource来完成对JdbcTemplate的实例化
2:DAO不继承JdbcDaoSupport,在Spring容器中配置一个JdbcTemplate的bean,然后注入DAO的实现类中

public class JdbcPersonDao implements PersonDao{
    private JdbcTemplate template;
    //这里可以使用注解和配置,本次试用配置bean方式注入
    public void setTemplate(JdbcTemplate template){
        this.template = template;
    }
    
    public void add(Person person){
        String insertSql = "insert into ..";
        Object[] params = {person.getName(),person.getID,person.get};
        template.update(sql,params);
    }
}
    
    
    
     
     
    
     
     
    
     
     
    
     
     

    
    

    
    
    
     
     

    
    
    
    
    
     
     

    
    

    
    

































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值