hibernate 学习 一 基本概念
1: Hibernate对JDBC进行封装,以面向对象的方式对关系型数据库进行操作。
2: Hibernate的配置文件: hibernate.properties 或者 hibernate.cfg.xml(这个用的更多),用于配置和底层数据库的连接信息。
3: Hibernate核心接口: configuration接口, SessionFactory接口,Session接口,Transaction接口和用于数据库查询的Query接口。通过这些接口对持久化对象进行操作,以及事务控制。
4;Hibernate的持久化步骤
(1)Hibernate初始化,创建Configuration对象。
这一步,读XML配置文件和映射文件的信息到Configuration对象属性中。
- 从Hibernate.cfg.xml中读取配置信息。存到Configuration;
- 根据Mapping元素加载所有实体类对应的映射文件到Configuration;
(2)创建SessionFactory实例
通过Configuration对象创建SessionFactory,也就是将Configuration对象内的配置信息存入SessionFactory.
SessionFactory充当数据源的代理,并负责创建Session对象。得到SessionFactory后,Configuration的使命就结束了。
(3)创建Session实例,建立数据库连接
SessionFactory打开Session,创建一个session就相当于与数据库建立一个新的连接。Session对象用来操作实体对象,并把这些操作转换成对数据库中数据的
增、删、改、查。
(4) 创建Transaction实例,开始一个事务。
Transaction用于事务管理,一个Transaction对象可以包括多个操作。在进行CRUD实,必须先创建Transaction对象。
(5)利用Session的方法(save/update/remove...)进行持久化操作。将实体对象持久化到数据库。
(6) 提交操作结果并结束事务。对对象持久化操作后,必须提交事务。
(7)关闭session,与数据库断开连接。
问题1: Hibernate的持久化类为什么必须提供一个无参的构造函数。
因为hibernate框架会调用这个默认构造方法来构造实例对象。。
即Class类的newInstance方法 这个方法就是通过调用默认构造方法来创建实例对象的 ,
另外再提醒一点,如果你没有提供任何构造方法,虚拟机会自动提供默认构造方法(无参构造器),
但是如果你提供了其他有参数的构造方法的话,虚拟机就不再为你提供默认构造方法,这时必须手动把无参构造器写在代码里,
否则new Xxxx()是会报错的,所以默认的构造方法不是必须的,只在有多个构造方法时才是必须的. 问题二: 持久化类必须提供一个标识属性,与表的主键对应 问题三: 建议不要将持久化类声明为final
因为延迟加载。 问题三: 为持久化类生生getter、setter方法,
hibernate 学习 一 基本概念的更多相关文章
- Hibernate学习一:Hibernate注解CascadeType
http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...
- Hibernate学习之——搭建log4j日志环境
昨天讲了Hibernate开发环境的搭建以及实现一个Hibernate的基础示例,但是你会发现运行输出只有sql语句,很多输出信息都看不见.这是因为用到的是slf4j-nop-1.6.1.jar的实现 ...
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...
随机推荐
- update tableView contenSize
NSIndexPath *messageIndexPath = [NSIndexPath indexPathForRow:afterRowCount-1 inSection:0]; [self. ...
- C++继承:公有,私有,保护(转)
公有继承(public).私有继承(private).保护继承(protected)是常用的三种继承方式. 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时, ...
- c# 时间相关
1.求时间差,两种方式(时间是否小于1800秒) 第一种: DateTime startTime = DateTime.Now; ... DateTime.Now.Subtract(startTime ...
- Java获取本机MAC地址[转]
原文地址:https://www.cnblogs.com/hxsyl/p/3422191.html Java获取本机MAC地址 为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网 ...
- impdp因致命错误终止 ORA-7445 [kpodpals]
基本要素 前天好不easy成功给用户把数据全库导出,今天用户又告知导出的数据无法导入,首先就问用户有什么错误提示,给我的回答是就一个'作业"SYSTEM"."SYS_IM ...
- kubernetes调度之 PriorityClass
系列目录 kubernetes支持多种资源调度模式,前面讲过简单的基于nodeName和nodeSelector的服务器资源调度,我们称之为用户绑定策略,下面简要描述基于PriorityClass的同 ...
- nvidia-docker_1.0.1-1_amd64.deb 百度云下载分享
nvidia-docker_1.0.1-1_amd64.deb 链接: https://pan.baidu.com/s/1i5pHFNZ 密码: xjui
- 用python编写的无线AP扫描器
代码如下: #coding=utf-8 import os import sys import subprocess from scapy.all import * RSN = 48 #管理帧信息元素 ...
- HDU 5384 Danganronpa (2015年多校比赛第8场)
1.题目描写叙述:点击打开链接 2.解题思路:本题利用字典树解决.本题要求查找全部的B[j]在A[i]中出现的总次数.那么我们能够建立一颗字典树,将全部的B[j]插入字典树,因为一个串的全部字串相当于 ...
- Java链接MySql数据库(转)
import java.sql.*; public class JDBCTest { public static void main(String[] args){ // 驱动程序名 String d ...