什么是jdbc:
- jdbc全称java database connectivity
- jdbc可以通过载入不同的数据库的“驱动程序”而与不同的数据库进行连接。
jdbc的优点:
- 使用的驱动不同,即可连接不同的数据库。
- 使用同一套操作来操作不同的数据库
- 如果每一个数据库java都制订一套连接方式,那么当不同的数据库更新的时候,java也需要更新自己的代码,而使用jdbc,使用同一套代码来操作,使用不同的驱动程序(驱动程序由数据库厂商提供)来连接,这使得可以连接不同的数据库。
spring对数据访问提供的支持
- 提供于平台无关的的持久化异常体系
- 提供模板简化数据持久化开发
提供于平台无关的的持久化异常体系
spring对jdbc的sqlexception进行封装,你不需要做什么;只需要将springjdbc的jar包导入即可,这样你就可以在spring所支持的数据访问模板中享受到这些异常^~~^
1
2
3
4
5
|
<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连接池,使用过程如下
加载依赖
1
2
3
4
5
6
|
<!-- https: //mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupid>com.alibaba</groupid> <artifactid>druid</artifactid> <version> 1.1 . 12 </version> </dependency> |
配置数据源
1
2
3
4
5
6
7
8
9
10
|
@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模板类
1
2
3
4
|
@bean public jdbctemplate jdbctemplate(datasource datasource) { return new jdbctemplate(datasource); } |
dao层相关代码
1
2
3
4
5
6
7
8
|
@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 ); } |
本章完整代码地址:完整项目下载地址点击此处
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:https://www.cnblogs.com/jimisun/p/9908082.html