zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    ZOJ2587 Unique Attack(判定最小割唯一性)
    SPOJ371 Boxes(最小费用最大流)
    SGU185 Two shortest(最小费用最大流/最大流)
    POJ2112 Optimal Milking(最大流)
    HDU3996 Gold Mine(最大权闭合子图)
    POJ3680 Intervals(最小费用最大流)
    SPOJ 7258 Lexicographical Substring Search(后缀自动机)
    HDU 4436 str2int(后缀自动机)
    SPOJ 1812 Longest Common Substring II(后缀自动机)
    CodeForces 235C Cyclical Quest(后缀自动机)
  • 原文地址:https://www.cnblogs.com/gzhcsu/p/11446264.html
Copyright © 2011-2022 走看看