日期:2014-05-16  浏览次数:20536 次

day03-spring与数据库操作的框架解析即dataSource的获取(JDBC)、使用spring中已经有的事务进行JDBC操作


数据库的操作:
   固定的代码(模板,datasource的获取)+动态的参数(变化的SQL语句、参数等等)
   模板模式的编程
代码的结构的解析:
 JdbcTemplate extends JdbcAccessor
    JdbcTemplate(){
   
    }
    JdbcTemplate(DataSource dataSource){
  this.dataSource = dataSource;
    }
    setDataSource(DataSource dataSource){
  this.dataSource = dataSource;
    }



 public abstract class JdbcDaoSupport extends DaoSupport {
  private JdbcTemplate jdbcTemplate;
  public final void setDataSource(DataSource dataSource) {
   if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
    this.jdbcTemplate = createJdbcTemplate(dataSource);
    initTemplateConfig();
   }
  }
  protected JdbcTemplate createJdbcTemplate(DataSource dataSource) {
   return new JdbcTemplate(dataSource);
  }
  public final DataSource getDataSource() {
   return (this.jdbcTemplate != null ? this.jdbcTemplate.getDataSource() : null);
  }
  public final void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
   this.jdbcTemplate = jdbcTemplate;
   initTemplateConfig();
  }
  public final JdbcTemplate getJdbcTemplate() {
    return this.jdbcTemplate;
  }
 }
   说明:
       1、在JdbcDaoSupport中可以注入dataSource
       2、在JdbcDaoSupport中注入的dataSource通过createJdbcTemplate方法
   传入到JdbcTemplate
              3、可以通过JdbcDaoSupport得到JdbcTemplate的引用
 HibernateTemplate
 SqlMapClientTemplate
 JdoTemplate

spring结合jdbc的写法:共七种写法
   1、
        类的写法:
  PersonDao extends JdbcDaoSupport
 配置文件:
        1、在PersonDao中注入DataSource
        2、在PersonDao中注入JdbcTemplate
             在JdbcTemplate中注入dataSource
                       1、可以利用构造器的形式
                       2、可以利用setter的方式
   2、
        类的写法
         PersonDao{
     private JdbcTemplate   jdbcTemplate;
  }
        配置文件:
              在PersonDao中注入JdbcTemplate
                     在JdbcTemplate中注入dataSource
                              1、可以利用构造器的形式
                              2、可以利用setter的方式
   3、