Spring-04:持久化数据,了解SpringDataJPA和Mybatis
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提供代码生成器、支持数据库模型逆向生成对象模型 |