zoukankan      html  css  js  c++  java
  • Spring项目对JDBC的支持和基本使用

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。使Java的各种后端技术在你心中模块化;让你在工作中能将Java各个技术了然于心;能够即插即用。本章我们来一起了解Spring对JDBC的支持和基本使用。

    Spring对数据访问提供的支持

    • 提供于平台无关的的持久化异常体系
    • 提供模板简化数据持久化开发

    提供于平台无关的的持久化异常体系

    Spring对JDBC的SQLException进行封装,你不需要做什么;只需要将SpringJDBC的Jar包导入即可,这样你就可以在Spring所支持的数据访问模板中享受到这些异常~~

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>4.1.1.RELEASE</version>
            </dependency>
    

    提供模板简化数据持久化开发

    针对不同的持久化平台,Spring提供了多个可选则使用的模板,常用的模板类如下

    模板类 用途
    jdbc.core.JdbcTemplate JDBC的链接
    orm.jdo.JdoTemplate Java数据对象实现
    orm.jpa.JpaTemplate Java持久化API的实体管理器
    orm.ibatis.SqlMapClientTemplate IBATIS SqlMap客户端
    orm.hibernate3.HibernateTemplate Hibernate3.x以上的Session

    装配数据源

    无论你使用哪一种模板类,你都需要配置一个数据源的引用,Spring提供了在Spring上下文中配置数据源Bean的多种方式

    • 通过JDBC驱动程序定义的数据源
    • 通过JNDI查找数据源
    • 连接池的数据源

    具体详细的数据源装配,我会另开一篇进行解析介绍,在本篇案例中使用的是阿里巴巴的druid连接池,使用过程如下
    加载依赖

            <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.12</version>
            </dependency>
    

    配置数据源

        @Bean
        public DruidDataSource dataSource() {
            DruidDataSource ds = new DruidDataSource();
            ds.setDriverClassName(environment.getProperty("jdbc.driver"));
            ds.setUrl(environment.getProperty("jdbc.url"));
            ds.setUsername(environment.getProperty("jdbc.username"));
            ds.setPassword(environment.getProperty("jdbc.password"));
            ds.setInitialSize(5);
            return ds;
        }
    

    配置JDBC模板类

        @Bean
        public JdbcTemplate jdbcTemplate(DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    

    Dao层相关代码

        @Autowired
        private JdbcOperations jdbcOperations;
        
        @Override
        public User getUser(String username) {
            List<User> query = jdbcOperations.query(SELECT_USER_BY_ID, new UserRowMapper(), username);
            return query.get(0);
        }
    

    本章完整代码地址:完整项目下载地址点击此处

  • 相关阅读:
    Bundle类
    intent.putExtra()方法参数详解
    6级技巧(一)
    6级核心词汇
    安卓应用运营知识:VersionCode和VersionName
    关于HTML、XHTML、CSS、XML的区别
    SQL记录-Linux CentOS配置ORACLE 12c
    Spark记录-Scala多线程
    Spark记录-Scala异常与处理
    Spark记录-Scala类和对象
  • 原文地址:https://www.cnblogs.com/jimisun/p/9908082.html
Copyright © 2011-2022 走看看