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

SpringBoot系列文章目录

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

目录

环境及工具:

1 JPA 是何方神圣?

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

3 JPA项目的目录总览


环境及工具:

环境win11
工具idea 2017
jdk1.8
数据库mysql5.5
maven3.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】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目花园范德彪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值