SpringBoot操作数据库jpa--【JSB系列之006】

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
简介: SpringBoot操作数据库jpa--【JSB系列之006】

环境及工具:

环境 win11
工具 idea 2017
jdk 1.8
数据库 mysql5.5
maven 3.2.1
项目导入方式 maven 导入
数据库前端工具 mysql-front (navicat 也可以)

数据库前端工具:mysql-front (navicat 也可以)主要是这些跟PHPstudy 2018 整合了,所以有的时候懒的打开navicat

1 JPA 是何方神圣?

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 [1] 

Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

2 JPA有两个重要的儿子Hibernate ,iBATIS

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。

hibernate劣势

  • 难以使用数据库的一些功能
  • 满足不了程序对cache的需求
  • 耦合度高
  • debug难
  • hibernate更新大批量数据

尤其是第5点,让当时的很多程序员直接国粹级开口了。

iBATIS

下面是使用iBATIS的一些优势:

  • 支持存储过程:iBATIS的SQL封装以存储过程的形式,使业务逻辑保持在数据库之外,应用程序更易于部署和测试,更便于移植。
  • 支持内嵌的SQL:预编译器不是必需的,并有完全访问所有的SQL语句的特性。
  • 支持动态SQL: iBATIS特性提供基于参数动态生成SQL查询。
  • 支持O / RM:iBATIS支持许多相同的功能作为一个O / RM工具,如延迟加载,连接抓取,缓存,运行时代码生成和继承

3 JPA项目的目录总览

其实,就本质而言,JPA的使用在外国要多一些,而国内用的最多的是mybatis, 如果就说快速应用,你不看JPA直接看mybatis 也是一点问题没有的。

但是万一mybatis 再升级呢? 或者说其它框架杀入呢? 目前来看,还得是继承JPA的这些接口规范,所以,学习JPA是不是磨刀不误砍柴工,还是有力无用用,这个就不得而知了。

这么说吧,玩过hibernate ,mybatis几年的,不看JPA也能跟着做JPA的项目。毕竟是同根生。

Controller 层,Service 层不再说了,跟SB系列之005里一样的。

现在看entity

很清楚的映射关系。

再打开mysql (博主使用的是mysql-front )

可以看到类SysAssetType与表sys_asset_type对应,字段与数据库表里的字段也是一一对应

这就叫做OR映射,不管是hibernate 还是mybatis 都是这样的一种关系。

那么数据是如何进入到数据库里的?

咦,DAO并没有SAVE,

那JPA事先写好了?(一追踪一下,确实如此,你也不用管是父类还是父父类了。)

普通的增删改查都有了。

下面的跟踪过程 看自己的JAVA能力,量力而行。

所以,DAO里并不需要写这些父类里有的方法,可以直接使用!!

这样使用者的DAO写的方法大多数都是一些特定的方法,比如按名字查询等。

直接运行起来。

直接在浏览器里访问 http://localhost:8080/save

页面上无反应,查看数据库(记得要点左上的刷新按钮)

然后就可以看到数据了。

验证的方式很熟悉,也很原始,事实上这也是最方便快捷的方式之一。

不过,在一些大的公司里 sysout 的这种输出要注释,甚至要删除掉才能发版,有一些代码检查工具对注释掉的sysout 也警告,有点让人无语。不过这种简单测试也就是用一遍就够了,用完就删掉也是正常的。

此博客配套的代码资源:

SpringBoot知识范围-学习步骤【JSB系列之000】

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1268 5
|
10月前
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
423 15
|
SQL Java 编译器
深入理解 Spring Data JPA 的导入与使用:以 UserRepository为例
本文深入解析了 Spring Data JPA 中 `UserRepository` 的导入与使用。通过示例代码,详细说明了为何需要导入 `User` 实体类、`JpaRepository` 接口及 `@Repository` 注解。这些导入语句分别用于定义操作实体、提供数据库交互方法和标识数据访问组件。文章还探讨了未导入时的编译问题,并展示了实际应用场景,如用户保存、查询与删除操作。合理使用导入语句,可让代码更简洁高效,充分发挥 Spring Data JPA 的优势。
689 0
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
SQL 缓存 监控
SpringBoot 整合 数据库连接池(Druid、HicariCP、C3P0等等)
SpringBoot 整合 数据库连接池(Druid、HicariCP、C3P0等等)保姆级教程超详细,Druid配置信息等等。
4902 0
SpringBoot 整合 数据库连接池(Druid、HicariCP、C3P0等等)
|
6月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。

热门文章

最新文章