欢迎查看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); }
本章完整代码地址:完整项目下载地址点击此处