Hibernate学习笔记(一)
2016/4/18 19:58:58
Hibernate学习笔记(一)
1.Hibernate框架的概述:
- 就是一个持久层的ORM框架.
- ORM:对象关系映射.将Java中实体对象与关系型数据库中表建立一种关系.Hibernate中可以通过操作对象的方式,从而操作数据库的表.
- 常见的持久层框架:
- Hibernate
- MyBatis
- JPA
- DBUtils
- Hibernate3.x和Hibernate4.x
2.Hibernate快速入门:
2.1 下载Hibernate开发包.
http://sourceforge.net/projects/hibernate/files/hibernate3
2.2 Hibernate开发包目录结构:
- 文档:
- 开发包:
- 操作字节码:
- 必须的
- 可选的
- jpa
- 项目:
2.3 创建一个java项目 导入相应jar包.
2.4 创建数据库表:
2.5 创建一个实体类:
2.6 建立映射:
2.7 创建Hibernate核心配置文件:
2.8 编写一个测试类:
3.Hibenrate的CRUD的操作:
- save():保存记录。
- session.save(customer);
- update():修改记录。
- session.update(customer);
- delete();
- get()/load():根据主键进行查询。
- Customer customer = (Customer)session.get(Customer.class ,1);
Customer customer = (Customer)session.load(Customer.class,1);
- 区别:
- get :采用是立即检索,马上发送SQL查询.返回的是真实对象.检索一个找不到的对象的时候NullPointException
- load :采用延迟加载技术,当真正使用这个对象的时候,才会发送SQL.返回代理对象.检索一个找不到的对象的时候ObjectNotFoundException
4.Hibernate的常见配置及API:
- 4.1核心配置:
- 两种方式;
- 属性文件的方式:
- 在src下创建一个hibernate.properties.
***** 手动加载映射文件.
- 在src下创建一个hibernate.properties.
- XML格式的配置:
- 在src下创建一个hibernate.cfg.xml
- 必须的配置:
- 数据库连接信息.
- Hibernate的方言.
- 可选配置:
- 显示SQL
- 格式化SQL
- hbm2ddl.auto
- create/create-drop/update/validate
- 映射文件:
- 属性文件的方式:
- 两种方式;
- 4.2映射配置:建立类与表映射
- class
- name :类的全路径
- table :表名称
- id
- name
- column
- type
- length
- property
- name
- column
- type
- length
5.Hibernate的API
- Configuration:管理配置信息.
- 属性文件:
- 直接创建.
- XML
- new Configuration().configure();
- 属性文件:
- SessionFactory:
- 维护二级缓存,线程安全的对象.
- 抽取工具类.
- Session:
- 维护一级缓存,线程不安全的对象.
- Transaction:
- 事务是默认不自动提交,手动提交事务.
- Query:
- Criteria:
6.持久化类编写:
- 持久化类:就是一个实体类 + XML映射.
- 编写原则:
- 无参数构造:
- 属性提供set/get方法
- 提供为一个标识:
- 尽量使用包装类型:
- 这个类尽量不要使用final修饰.
- 自然主键和代理主键:
- Hibernate提供主键生成策略:
- increment :自动增长.适合 short int long...不是使用数据库的自动增长机制.使用Hibernate框架提供的自动增长方式.
select max(id) from 表; 在最大值的基础上+1.(多线程的问题.)在集群下不要使用
- identity :自动增长.适合 short int long...采用数据库的自动增长机制.不适合于Oracle数据库.
- sequence :序列.适用于 short int long ... 应用在Oracle上 .
- uuid :适用于字符串类型的主键.采用随机的字符串作为主键.
- native :本地策略.底层数据库不同.自动选择适用identity 还是 sequence.
assigned :Hibernate框架不维护主键,主键由程序自动生成.
Hibernate学习笔记(一)的更多相关文章
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Hibernate学习笔记
一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法 ...
- Hibernate学习笔记(四)
我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440 ...
- Hibernate学习笔记(三)
我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440 ...
- HIbernate学习笔记(一) 了解hibernate并搭建环境建立第一个hello world程序
Hibernate是一个开放源代码的ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装,Java程序员可以使用面向对象的编程思维来操纵数据库,它通过对象属性和数据库表字段之间的映射关系,将对象 ...
- Hibernate学习笔记-Hibernate关系映射
1. 初识Hibernate——关系映射 http://blog.csdn.net/laner0515/article/details/12905711 2. Hibernate 笔记8 关系映射1( ...
- Hibernate学习笔记(1)Hibernate构造
一 准备工作 首先,我们将创建一个简单的基于控制台(console-based)Hibernate应用. 我们所做的第一件事就是创建我们的开发文件夹.并把所有需要用到的Java件放进去.解压缩从Hib ...
随机推荐
- mpt_voronoi demo
% %demo1% A=rand(3,10);% pbound=Polyhedron([0 0 0;150 0 0;150 150 0;0 150 0; 0 0 1;150 0 1;150 150 1 ...
- UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- visual studio 两个以上sln 引用同一个project ,生成时会改变projectguid问题
当两个以上解决方案添加现有项,选择了同一个项目,那么在 sln 文件中,会自己带一个guid. 当打开两个解决方案,一个生成时,会影响另一个的project值,导致每次都看到了签出. 解决办法,打开共 ...
- 一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别
总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀....) 先总结下区别: event.c ...
- 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)
Xiang Bai--[arXiv2016]Scene Text Detection via Holistic, Multi-Channel Prediction 目录 作者和相关链接 方法概括 创新 ...
- 夺命雷公狗----Git---2---基本用法
首先我们来创建一个git仓库,其实命令也是很简单的.. git init 其实在创建完成后,该目录会多了一个.git的文件夹,但该文件夹是隐藏的.... 其实这就是一个git仓库,特别建议不要在这个目 ...
- SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
方法一: 直接(手动)去修改数据库名称,数据库表名称,数据库列名称.列属性 方法二: 使用SQL语句去修改 -- 修改表名 ALTER TABLE tableName RENAME newTableN ...
- SSM——(一)
入职第一天,项目经理要求利用SSM+MySQL做一个表单的CRUD:之前没用过mybatis,恶补了一下:http://www.jb51.net/article/70923.htm. spring三层 ...
- .NET开发者必备的工具箱
本文作者Spencer是一名专注于ASP.NET和C#的程序员,他列举了平时工作.在家所使用的大部分开发工具,其中大部分工具都是集中于开发,当然也有一些其它用途的,比如图片处理.文件压缩等. 如果你是 ...
- Protocols