Spring——JDBC——数据库

1.Spring 的数据访问哲学

  数据访问的功能放到一个或者多个专注于此项任务的组件。这样的组件通常称为数据访问对象(data access object)DAO或者Repository。

  为了避免应用与特定的数据访问策略耦合再一起,编写良好的Repository应用以接口的方式暴露功能。

  为了将数据访问层与应用程序的其他部分隔离开来。Spring采用的方式之一就是提供统一的异常体系。这些异常都继承DataAccessException。它是一个非检测型异常,没有必要捕获Spring所抛出的数据访问异常。主要是触发的异常问题很多是不能再catch代码块中修复的。

2.数据访问的模板化

  Spring将数据访问过程中固定的和可变的部分明确划分为两个不同的类:模板(template)和回调(callback)。模板管理过程中固定的部分,而回调处理自定义的数据访问代码。

固定部分:事务控制、管理资源以及异常处理;

Spring提供了多个可选模板。如果直接使用JDBC,可以选择jdbcTemplate。如果使用ORM框架,HibernateTemplate或JpaTemplate可能会更适合。

3.配置数据源

  使用数据源连接池

  Spring并没有提供数据源连接池实现,采用开源方案:

  • Apache Commons DBCP(http://jakarata.apache.org/commons/dbcp);
  • c3p0(http://sourceforge.net/project/c3p0/);
  • BoneCP(http://jolbox.com);
<bean id="dataSource" class ="org.apche.commons.dbcp.BasicDataSource“
 p:driverClassName="org.h2.Driver"
 p:url = "jdbc:h2:tcp://localhost/~/Demo"
 p:username="root"
 p:password="******"
 p:initialSize ="5"
 p:maxActive ="10" />
    @Bean
    public BasicDataSource dataSource() {
        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName("org.h2.Driver");
        ds.setUrl("jdbc:h2:tcp://localhost/~/Demo");
        ds.setUsername("root");
        ds.setPassword("******");
        ds.setInitialSize(5);
        ds.setMaxIdle(10);
        return ds;
    }

4.使用JDBC模板

  • jdbcTemplate:最基本的SpringJDBC模板,这个模板支持JDBC数据库访问功能以及基于索引参数的查询
  • NamedParameterJdbcTemplate:执行查询时可以将值以命名参数的形式绑定到SQL中。

  使用jdbcTemplate来插入数据

  

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
原文地址:https://www.cnblogs.com/gzhcsu/p/11446264.html