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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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】

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
前端开发 关系型数据库 MySQL
SpringBoot-----从前端更新数据到MySql数据库
SpringBoot-----从前端更新数据到MySql数据库
8 1
|
1天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
15 0
|
1天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
9 0
|
1天前
|
移动开发 前端开发 Java
springboot数据库回滚失败原因
springboot数据库回滚失败原因
|
1天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
19 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
22 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
1天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
18 0
|
1天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
23 0
|
1天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)