Spring Data Jdbc和JdbcTemplate知识概括

本文介绍了Spring Data Jdbc和JdbcTemplate的核心概念,包括JDBC的模板方法、Spring Boot中的JDBC起步依赖提供的功能,以及Spring Data Jdbc与JPA的差异。讨论了JdbcTemplate如何简化数据库操作,Spring Data Jdbc则进一步提升了开发效率,通过Repository接口和方法命名规则实现自动化查询。同时,文章探讨了原生JDBC、JdbcTemplate、Spring Data Jdbc之间的联系,强调了Spring Data Jdbc的便捷性和对不同数据库的支持。
摘要由CSDN通过智能技术生成

Spring Data Jdbc和JdbcTemplate知识概括知识概括

JDBC简介

简介:

  • 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为Spring JDBC 框架的核心
  • JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务.通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取的工作量降到最低.

spring-boot-starter-jdbc:

  • spring-boot-starter-jdbc也就是创建项目时下图中的JDBC API,也就是JDBCTemplate

在这里插入图片描述

  • SpringBoot里的spring-boot-starter-jdbc包就是Spring JDBC包。
  • spring-boot-starter-jdbc主要提供了三个功能:
    ①对数据源的装配,
    ②提供一个JdbcTemplate简化使用,
    ③事务

spring-boot-starter-data-jdbc:
在这里插入图片描述

  • spring-boot-starter-data-jdbc就是spring data jdbc
  • 链接:
    spring data jdbc 实战
    spring data jdbc 详解
  • spring data jdbc 相比于 spring data jpa:
    轻巧,快速且开销低。 只有少数几个类, 没有XML,注释,反射
    ②这不是成熟的ORM 。 没有关系处理,延迟加载,脏检查,缓存
    ③在几秒钟内实现CRUD
    ④对于JPA过大的小型应用程序,在需要简单性或考虑将来迁移到JPA时使用
    ⑤对数据库方言差异的最小化支持(例如,透明的结果分页)
    ⑥总结来说:破产版spring data jpa!

JDBC方法概述

方法概述:
在这里插入图片描述在这里插入图片描述

JDBC和JPA

JDBC:

  • jdbc(Java DataBase Connectivity)是java连接数据库操作的原生接口。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为各个数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。一句话概括:jdbc是所有框架操作数据库的必须要用的,由数据库厂商提供,但是为了方便java程序员调用各个数据库,各个数据库厂商都要实现jdbc接口。

JPA:

  • jpa(Java Persistence API)是java持久化规范,是orm框架的标准,主流orm框架都实现了这个标准。Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。ORM是一种思想,是插入在应用程序与JDBC API之间的一个中间层,JDBC并不能很好地支持面向对象的程序设计,ORM解决了这个问题,通过JDBC将字段高效的与对象进行映射。具体实现有hibernate、spring data jpa、open jpa。
  • spring data jpa是对jpa规范的再次抽象,底层还是用的实现jpa的hibernate技术。
  • hibernate是一个标准的orm框架,实现jpa接口。
  • mybatis也是一个持久化框架,但不完全是一个orm框架,不是依照的jpa规范。

jdbc和jpa的区别:

  • 本质上,这两个东西不是一个层次的,jdbc是数据库的统一接口标准,jpa是orm框架的统一接口标准。
  • 用法有区别,jdbc更注重数据库,orm则更注重于java代码,但是实际上jpa实现的框架底层还是用jdbc去和数据库打交道。

spring jdbc与spring data jdbc,原生jdbc的联系

原生JDBC:

  • 在原生的JDBC开发中,我们通常会先定义一个DAO接口,这里我们只举一个例子查询所有学生
public interface StudentDAO {
   
 
    /**
     * 查询所有学生
     * @return 所有学生
     */
    public List<Student> query();
 
}
  • 实现StudentDAO接口:
public class StudentDAOImpl implements  StudentDAO{
   
 
    @Override
    public List<Student> query() {
   
 
        List<Student> students = new ArrayList<Student>();
 
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String sql = "select id, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值