碎片化 | 第四阶段-48-hibernate概述和配置-视频
时间:2022-05-06
本文章向大家介绍碎片化 | 第四阶段-48-hibernate概述和配置-视频,主要内容包括Hibernate、增删改查操作、Hibernate主键管理、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
如清晰度低,可转PC网页观看高清版本:
http://v.qq.com/x/page/h0567lzrhs1.html
版权声明:本视频、课件属本公众号作者所有,如有侵权,将追究法律责任。
视频课件:
Hibernate
jdbc->jdbcTemplate -> mybatis ->Hibernate
用于操作数据库中的数据,ORM工具,类似于我们的mybatis,是为我们操作持久层提供的开源框架
hibernate和mybatis的对比:
1:hibernate学习难度大于mybatis
2:hibernate扩展功能强于mybatis
3:hibernate提供自带的事物、缓存、二级缓存等
4:hibernate支持自带分页功能,mybatis使用插件进行分页
5:hibernate目前行情很少使用了,多数用于大型传统公司老项目
6:mybatis应用与大型的互联网项目。eg:网站、中间件、CRMSCRM、ERP、APP等等
7:hibernate整合ssh,复杂度大于mybatis
8:hierbnate自己生成sql语句,mybatis需要手工编写sql语句
结构:
1:导包
2:增加配置文件
3:加载一些配置数据库信息
结构图:
数据库工具类
要获取Session---org.hibernate
/**
* 获取数据库连接session
* @return
*/
public static Session getSession(){
Configuration conf = new Configuration();
conf.configure("hibernate.cfg.xml");//读取hibernate配置文件
SessionFactory sessionFactory = conf.buildSessionFactory();//创建session工厂
Session session = sessionFactory.openSession();//建立session连接工厂
return session;
}
增删改查操作
1:查询
session.get(Entity.class, id);
2:增加
session.save(Entity);
3:删除
session.delete(Entity);
4:修改
注意:首先查询要修改的实体对象,然后修改
session.update(Entity);
事物使用:
Transaction ts = session.beginTransaction();//开启事物连接
//TODO 增删改操作代码
ts.commit();//提交事物
session.close();//关闭session
Hibernate主键管理
Hibernate提供了很多内置的主键生成器,可以在添加时自动生成主键值。
1.sequence 序列
适用于Oracle数据库
2.identity 主键自动生成
适用于MySQL、SQLServer数据库
3.native
代表hibernate会自动识别当前连接数据库类型,eg:mysql、oracle
如果是mysql数据库,那么此时的主键生成策略则为identity
如果是oracle数据库,那么此时的主键生成策略为:sequence
4.increment
可以不给主键ID进行set值,默认是使用数据表的主键ID最大值+1作为ID值
5.uuid/hilo
采用uuid或hilo算法生成一个主键值。uuid生成一个字符串值
6.assigned
默认值。在进行添加操作时,程序员需要在代码中使用setXxx()设置主键值
- 利用USB橡皮鸭在目标机器上启动Empire或Meterpreter会话
- Spark部署
- Spark调优
- perl语言十分钟入门【零基础可入】
- Spark硬件配置推荐
- Spark作业调度
- 如何把Photoshop改造成远程控制工具(RAT)来利用
- Office高级威胁漏洞在野利用分析
- 10行代码告诉你,为什么说Python数据可视化是一件艺术品
- 没想到你是这样的Linux | 终端下有趣的命令合集
- PhEmail:基于Python的开源网络钓鱼测试工具
- 数据库中间件mysql-proxy细节【mysql官方的中间件】
- Office CVE-2017-8570远程代码执行漏洞复现
- Java 并发包中的读写锁及其实现分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- GlassFish 目录穿越漏洞测试过程
- 安装CDH7.1.1
- GIT-SHELL 沙盒绕过(CVE-2017-8386)
- Azkaban-2.5.0-部署与常见案例
- 无字母数字webshell之提高篇
- Sqoop-1.4.7-部署与常见案例
- Hbase-2.0.0_01_安装部署
- 前端黑魔法之远程控制地址栏
- 攻击LNMP架构Web应用的几个小Tricks
- Hbase-2.0.0_02_常用操作
- phpjiami 数种解密方法
- Hbase-2.0.0_03_Hbase数据模型
- ELK-elasticsearch-6.3.2部署
- Real World CTF 2018 bookhub 总结
- python http.server open redirect vulnerability