第四章:Spring项目对JDBC的支持

简介: 欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。

欢迎查看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);
    }

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

目录
相关文章
|
1月前
|
Java Maven 开发工具
IDEA使用Spring Initializr流畅的创建springboot项目
IDEA使用Spring Initializr流畅的创建springboot项目
74 0
WXM
|
1天前
|
Java 应用服务中间件 Maven
|
18天前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题
|
19天前
|
负载均衡 Java 开发者
如何在Spring Boot项目中实现微服务架构?
如何在Spring Boot项目中实现微服务架构?
|
24天前
|
消息中间件 负载均衡 Java
最容易学会的springboot gralde spring cloud 多模块微服务项目
最容易学会的springboot gralde spring cloud 多模块微服务项目
|
29天前
|
Java 开发者 Spring
Spring项目中Ordered接口的应用:全局过滤器(GlobalFilter)的顺序控制
Spring项目中Ordered接口的应用:全局过滤器(GlobalFilter)的顺序控制
27 2
|
1月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
24 3
|
1月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
30 2
|
1月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
26 1
|
19天前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题