温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

关于Spring项目对JDBC的支持与基本使用详解

发布时间:2020-09-10 09:37:30 来源:脚本之家 阅读:104 作者:jimisun 栏目:编程语言

什么是JDBC:

  • JDBC全称Java Database Connectivity
  • JDBC可以通过载入不同的数据库的“驱动程序”而与不同的数据库进行连接。

JDBC的优点:

  • 使用的驱动不同,即可连接不同的数据库。
  • 使用同一套操作来操作不同的数据库
  • 如果每一个数据库java都制订一套连接方式,那么当不同的数据库更新的时候,java也需要更新自己的代码,而使用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);
 }

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI