首页 > 其他分享 >Spring-04:持久化数据,了解SpringDataJPA和Mybatis

Spring-04:持久化数据,了解SpringDataJPA和Mybatis

时间:2022-10-10 23:55:21浏览次数:77  
标签:SpringDataJPA Java 04 JPA Spring SQL Mybatis Data

1 Javaweb阶段的方式

在之前的Javaweb项目中,我们持久化数据的方式还是直接使用JDBC

参考:Javaweb总结-目前开发Javaweb的套路梳理

https://www.cnblogs.com/fancy2022/p/16606960.html

这种方式非常复杂,开发效率低,现在我们要使用Spring框架,就要引入新的ORM框架

2 持久化数据:ORM框架

ORM:(Object-Relational Mapping):对象关系映射

常用的框架有:

  • Mybatis

  • Hibernate

  • Spring Data JPA

  • JdbcTemplate

2.1 Spring Data JPA介绍

JPA(Java Persistence API,Java持久化API)是一个Java应用程序接口规范,描述了使用Java标准平台(Java SE)和Java企业版平台(Java EE)的应用中的关系数据的管理。

Spring Data JPA属于Spring Data的子项目,

Spring Data JPA的内置实现中提供了包括增删改查、分页、自定义SQL的常用功能,且提供接口以待拓展增强。

基于Spring Data JPA可以简洁的代码,快速的实现对数据库的访问。

2.2 Mybatis介绍

Mybatis是一款优秀的持久层框架,他支持自定义SQL、存储过程以及高级映射。Mybatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。Mybatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。

2.3 对比分析

对我们开发业务而言,最大的区别就是Mybatis可以自定义SQL语句。

(Spring Data JPA是面向对象的,而MyBatis是面向关系的)

功能对比:参考https://www.cnblogs.com/threadj/p/13304870.html

序号 功能项 Spring Data JPA Mybatis
1 启动配置 数据库连接+JPA相关配置 数据库连接+Mybatis相关配置
2 映射关系 注解方式实现POJO与数据表之间的映射 XML配置结合自动映射(或驼峰映射),实现POJO与SQL之间的映射
3 类型转换 Convert,多用于如枚举值的存取 TypeHandle,多用于枚举类型数据存储
4 读写接口 内置提供CRUD、分页、排序、 Example等基础接口,可自我拓展 默认不提供实现,由使用者实现,但是Mybatis-Plus提供通用mapper、分页
5 查询语言 提供约定的查询语言JPQL,同时支持原生SQL 支持原生SQL,支持动态SQL
6 其他 1、支持对象模型正向创建数据库模型;2、提供缓存机制;3、提供乐观锁指定 1、提供Interceptor,可以拦截SQL进行一定的处理;2、Mybatis-Plus提供代码生成器、支持数据库模型逆向生成对象模型

之后我们会使用Mybatis来演示详细案例,在本书《Spring实战第5版》中的数据持久化部分仅了解即可。

标签:SpringDataJPA,Java,04,JPA,Spring,SQL,Mybatis,Data
From: https://www.cnblogs.com/fancy2022/p/16777870.html

相关文章

  • ubuntu 22.04 安装qqmusic问题
    Fedora安装QQ音乐打开/usr/share/applications/qqmusic.desktop[DesktopEntry]Name=qqmusicExec=/opt/qqmusic/qqmusic%U--no-sandboxTerminal=falseType=Appl......
  • 玩转树莓派[04pi-dashboard实时监控]
    title:玩转树莓派[04:pi-dashboard实时监控]excerpt:先搞一个本地树莓派监控网页tags:[raspberry,基地2.0,系统,mariadb,myadmin,mysqlmysql,nginxnginx,ph......
  • Spring事务的三种实现方式
    spring中事务的三种实现方式1.编程式事务管理过时了,一般不用,略2.声明式事务管理2.1基于TransactionProxyFactoryBean的声明式事务管理1创建异常类publicclassMyException......
  • 「CTSC2004」最优切割
    题目大意[CTSC2004]最优切割-HydroOJ给定一个平面直角坐标系上的木模板和一个目标零件(均为凸多边形),保证零件位于模板内部,且任意不相邻的两边延长线的交点在模板外。你......
  • SpringBoot-JavaMailSender接口实战
    相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送,在SpringBoot的Starter模块中也为此提供了自动化配置。下面通过实例来讲解如......
  • 04. Kubernetes - Kubeadm 证书问题
    证书有效期通过kubeadm安装的Kubernetes集群的证书有效期为1年,可以使用相关命令查看证书的有效期:kubeadmcertscheck-expiration如图所示:可以看到除了ca证......
  • spring day02 xml开发总结以及注解开发总结
    第三方资源配置管理管理DataSource连接池对象【第一步】添加Druid连接池依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><......
  • Spring Boot应用启动的方式:3种
    Java8SpringBoot2.7.3-- 本文简单展示3种SpringBoot应用启动的方式:SpringApplication类和SpringApplicationBuilder类中的方法。 建立SpringBoot(版本2.......
  • Leecode104 二叉树的最大深度
    //DFS解法前序遍历/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*Tr......
  • java spring 纯注解开发
     创建核心容器有两个方法如下图     获取Bean对象方法有三种     BeanFactory与FactoryBean区别    spring纯注解由哪些常见的 ......