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

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

Spring项目对JDBC的支持和基本使用的更多相关文章

  1. Spring应用——对 JDBC 的支持

    一.说明 1.Spring JDBC 对原始的 JDBC 进行了封装,使其更加易用. 2.JdbcTemplate 作为 Spring JDBC 的核心,为不同类型的 JDBC 操作提供了模板方法. ...

  2. Spring框架学习笔记(9)——Spring对JDBC的支持

    一.使用JdbcTemplate和JdbcDaoSupport 1.配置并连接数据库 ①创建项目并添加jar包,要比之前Spring项目多添加两个jar包c3p0-0.9.1.2.jar和mysql- ...

  3. Spring Boot 整合JDBC 实现后端项目开发

    一.前言 二.新建Spring Boot 项目 三.Spring Boot 整合JDBC 与MySQL 交互 3.1 新建数据表skr_user 3.2 Jdbcproject 项目结构如下 3.3 ...

  4. 开涛spring3(7.5) - 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践

    7.5 集成Spring JDBC及最佳实践 大多数情况下Spring JDBC都是与IOC容器一起使用.通过配置方式使用Spring JDBC. 而且大部分时间都是使用JdbcTemplate类(或 ...

  5. 1.Spring对JDBC整合支持

    1.Spring对JDBC整合支持 Spring对DAO提供哪些支持 1)Spring对DAO异常提供统一处理 2)Spring对DAO编写提供支持的抽象类 3)提高编程效率,减少DAO编码量 Spr ...

  6. Spring 对JDBC操作的支持

    1.Spring 对JDBC操作的支持 Spring对jdbc技术提供了很好的支持,体现在: 1.Spring对c3p0连接池的支持很完善 2.Spring对jdbc提供了jdbcTemplate,来 ...

  7. 8.Spring对JDBC的支持和事务

    1.Spring对JDBC的支持 DAO : Spring中对数据访问对象(DAO)的支持旨在简化Spring与数据访问技术的操作,使JDBC.Hibernate.JPA和JDO等采用统一的方式访问 ...

  8. Spring入门案例 idea创建Spring项目

    spring入门案例 idea创建spring项目 Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其 ...

  9. eclipse下构建maven spring项目

    准备工作: 1.下载eclipse(Eclipse Java EE IDE for Web Developers,Version: Juno Service Release 2). 2.下载maven ...

随机推荐

  1. 关于Cocos2d-x中类与类之间调用彼此方法的机制

    1.一般情况下都是把需要实例化的对象类的头文件包含到一个GameController.h中,再在GameController.cpp文件里面去使用各种对象类的方法来实现游戏的逻辑. 2.还有的时候会把 ...

  2. 观察者模式/ java实现附代码 /

    /注:场景和例子引用github上的设计模式.传送门:https://github.com/iluwatar/java-design-patterns/tree/master/observer 场景: ...

  3. 一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) set 注入

    一:这里先说一下DI(Dependency Injection)依赖注入有种表现形式:一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) ...

  4. nodejs基础 -- 事件循环

    Node.js 事件循环 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用, ...

  5. Linux基础知识之history的详细说明

    背景:history是Linux中常会用到内容,在工作中一些用户会突然发现其安装不了某个软件,于是寻求运维人员的帮助,而不给你说明他到底做了哪些坑爹的操作.此时你第一件要做的就是要查看其history ...

  6. MyEclipse安装EGit插件方法

    摘要: 先了解自己的MyEclipse是基于哪个版本的Eclipse优化的,然后到EGit网站找对应的EGit版本,下载压缩包,解压安装. 在网上看到有人说并不是任意版本的EGit插件都能适配你的My ...

  7. LR中点鼠标做关联(winsock协议)

    转自:http://blog.csdn.net/zeeslo/article/details/1661791 今天写一下winsock的关联操作. 以前看过一个文档.在英文版的讲winsock的,其中 ...

  8. mysql中/*!40000 DROP DATABASE IF EXISTS `top_server`*/;这中注释有什么作用?

    需求描述: 今天在进行mysqldump实验,使用--add-drop-databases参数,于是在生成的SQL文件中,就出现了. /*!40000 DROP DATABASE IF EXISTS ...

  9. RedisTemplate实现事物问题剖析和解决

    一.问题描述 Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,Redis对事物支持不会很复杂,当一个客服端连接Redis服务时,发出了MULTI命令时,这个连接会进入事物,在执行MU ...

  10. QQ第三方登录实例demo(QQSDK包优化)

    实现效果: 实现流程: 1.注冊QQ互联开发人员 QQ互联官网 注冊成为开发人员(须要审核) 2.审核通过之后 申请应用(须要互联人员审核*须要备案成功的线上域名) 以下我们開始下载QQsdk包 QQ ...