碎片化 | 第四阶段-48-hibernate概述和配置-视频

本套视频从Java基础到架构模式以及AI算法,整体视频以“碎片化”学习的模式,提供给大家 ,并配备实际项目为案例,让大家在坐车、吃饭、午休、蹲坑的时候,都可以学习到N个知识点,目前所有知识点将是免费观看,如果你从中有所收获,烦请关注并转发分享,将是对康哥最大的支持。
视频内容

如清晰度低,可转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:网站、中间件、CRM\SCRM、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()设置主键值

原文发布于微信公众号 - 码神联盟(lkchatspace)

原文发表时间:2017-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

优化 SQL SELECT 语句性能的 6 个简单技巧

SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则。20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能...

471110
来自专栏逸鹏说道

我为NET狂官方面试题-数据库篇答案

说明:如有错误可以批评指正,有更好写法也可以提点下~ 1. 求结果:select "1"? 报错,SQL里面只有单引号,列如:'xx' 2. 查找包含"obj...

36680
来自专栏Albert陈凯

Hbase二级索引

二级索引与索引Join是多数业务系统要求存储引擎提供的基本特性,RDBMS早已支持,NOSQL阵营也在摸索着符合自身特点的最佳解决方案。这篇文章会以Hbase做...

63040
来自专栏友弟技术工作室

mysql优化

上篇文章是关于mysql优化的,那个内容是我大学的时候学习的笔记,最近学习发现一些比较好的内容,在这里分享给大家。 版权源于网上。 工作中使用最多的就是MySQ...

56770
来自专栏数据和云

防不胜防:一个空格在数据库里可能引发的N重血案

杨廷琨(网名 Yangtingkun) 云和恩墨 CTO,Oracle ACE Director,ACOUG 核心专家 编辑手记:在Oracle DBA的...

29140
来自专栏数据和云

Oracle数据库中最让人匪夷所思的十大问题盘点

数据的世界无奇不有,常常会遇到一些超出常识之外的故障的发生。这就要求广大的DBA要深入了解数据库的内部机制,面对一些奇葩的故障或者问题能够拨开迷雾找到真相。今...

31050
来自专栏数据和云

Real World Performance 经典性能优化案例-索引竞争

编辑手记:Real World Performance(RWP)团队是个天才的性能优化团队,不断的寻找和创造新的方法分析诊断当今世界业务系统的性能。在他们眼里,...

38090
来自专栏Hadoop数据仓库

HAWQ技术解析(十七) —— 最佳实践

一、HAWQ参数配置最佳实践 (原文地址:http://hawq.incubator.apache.org/docs/userguide/2.1.0.0-inc...

23570
来自专栏杨建荣的学习笔记

在线重定义的补充测试(r10笔记第26天)

在很多时候,我们都是需要保持业务的可持续性,尽管说DDL的过程持续时间很短,但是在线业务出现,就会阻塞DML,导致业务访问中断,事务收到影响,所以在有些...

36280
来自专栏章鱼的慢慢技术路

查询自动售货机中的商品价格

16830

扫码关注云+社区

领取腾讯云代金券