玩耍Hibernate系列(一)补充--基础知识
基本概述:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端使用,也可以在Servlet/jsp的web应用中使用,最具有革命意义的是,Hibernate可以在应用EJB的将ee框架中取代CMP,完成数据持久化的重任。
hibernate是轻量级的ORM框架,ORM全称object relation mapping 对象关系映射
PS:JAR包及其文档可以在官网网站下载:http://www.hibernate.org
ORM基本概念:
对象关系映射是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术,简单的说就是,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动化持久化到关系型数据库中,本质上就是讲数据从一种形式转换到另外一种形式。
PS:通过ORM这种技术就可以在java程序以类个和对象的形式去操控数据库的表和记录。
ORM框架:
1、Apache OJB
2、Hibernate
3、iBatis
4、SMYLE
5、Toplink
使用Hibernate的好处:
1、引入hibernate可以使工作人员角色细化,让程序员更关心业务流程,让数据库人员关注数据相关的各种操作。
2、分层更清晰,耦合性更小
3、通用性强,可以更轻松从一个数据库平台转移到别的平台
4、对象化,把关系型数据库变成了java对象,更加方便操作
5、性能保证,hibernate可能按不同的数据库,处理不同的操作是用最优化的sql语句
6、增加了程序的鲁棒性
基本原理图
Hibernate框架与JDBC的区别
MVC框架图(加上Hibernate框架)
Hibernate开发的三种方式
1、由Domain对象->mapping->database(官方推荐)
2、由Database->Domain对象->mapping
3、由映射文件开始
PS:其实通过MyEclipse可以自动生成大部分代码,但是为了理解的更深刻,还是要学习手工开发。
Hibernate手工开发
采用上述第二种方式,实现一个员工管理系统
1、Database设计(Oracle)
--创建employee表
create table employee
{
id number primary key,--编号
name varchar2(50) not null,--姓名
email varchar2(50) not null,--电子邮件
hibernate date not null --入职时间 };
--创建employee自增序列
create sequence emp_seq
start with 1
increment by 1
minvalue 1
nomaxvalue
nocycle
nocache
;
2、引入hibernate包
这个可以到官方网站上下载,然后引入。
3、编写POJO类(Employee类)
玩耍Hibernate系列(一)补充--基础知识的更多相关文章
- Spring Ioc源码分析系列--Ioc的基础知识准备
Spring Ioc源码分析系列--Ioc的基础知识准备 本系列文章代码基于Spring Framework 5.2.x Ioc的概念 在Spring里,Ioc的定义为The IoC Containe ...
- 【Linux系列】Linux基础知识整理
Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...
- 玩耍Hibernate系列(二)--基础知识
Hibernate思维导图 Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述 ...
- 玩耍Hibernate系列(一)--基础知识
Hibernate框架介绍: Hibernate ORM 主要用于持久化对象(最常用的框架) Hibernate Search 用于对对象进行搜索,底层基于Apache Lucene做的 Hib ...
- .NET面试题系列[3] - C# 基础知识(1)
1 类型基础 面试出现频率:基本上肯定出现 重要程度:10/10,身家性命般重要.通常这也是各种招聘工作的第一个要求,即“熟悉C#”的一部分.连这部分都不清楚的人,可以说根本不知道自己每天都在干什么. ...
- 前端系列之CSS基础知识概述
1.什么是DIV (1).div就是html一个普通标签,进行区域划分.特性:独自占一行.独自不能实现复杂效果.必须结合css样式进行渲染. (2).div通常其是块级元素 (3).div是定义文档中 ...
- Objective-C系列总结之基础知识
//第一个程序示例 #import <Foundation/Foundation.h> int main(int argc,const char * argv[]) { @autorele ...
- .NET面试题系列[4] - C# 基础知识(2)
2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...
- EJB系列 - 会话Bean基础知识
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-session-bean/ 什么是会话 有限的时间周期内,客户端和服务器之间的连接 为什么使用 ...
随机推荐
- 根据JSON对象动态加载表格--大数据量
EasyUI的DataGrid加载数据的时候,如果列数过多(300列以上),数据渲染及其缓慢. JSON对象格式: 1:rowno 2:title 3:colspan 4:rowspan 5:back ...
- 如何查询centos查看系统内核版本,系统版本,32位还是64位
查看centos内核的版本: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@build ...
- HTML5应用之时钟
利用HTML5的Canvas API可以完成我们以前意想不到的动画效果,以前我们想在网页上放置一个时钟,需要先用flash工具制作一个钟表,并写上复杂的JavaScript代码,然后载入到页面中.而H ...
- Mvc多级Views目录
一般我们在mvc开发过程中,都会碰到这样的问题.页面总是写在Views文件夹下,而且还只能一个Controller的页面只能写在相应的以Controller名命名的文件夹下.如果我们写到别处呢?那么肯 ...
- 在HTML文件中加载js
js加载只分为两种: 1.全局js,放在<head>标签里面,整个页面很多都用到的,它是优先加载的. 2.局部js,放在</html>结束标签以内的任何位置,它是第二加载的.
- 分享:php 上传图片的代码
转自:http://www.jbxue.com/article/6379.html php 上传图片的代码,很简单,实现了基本的文件类型.文件大小的检测,并实现了基本的水印与缩略功能,比较适合初学的朋 ...
- try 返回前执行fianlly
try catch finally 语句中 如果try中有返回语句,如果在fianlly代码块中有对这个值修改的话,并不影响其放回值 public class Test { public stati ...
- 双栈排序(codevs 1170)题解
[问题描述] Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈 ...
- C#程序双击运行之后,界面不显示,但是在任务管理器有进程(一个winform找bug之旅)
最近客户端又出了奇葩事情:http://q.cnblogs.com/q/43038/ 如这篇博问一样.我的一个客户的电脑上程序打开了,进程也有了,就是界面窗体出不来!!! 我是win7是开发机,三四台 ...
- 如何在windows下安装python第三方包
python安装第三方库一般方式和easy_install方式 2010-06-24 17:43:53| 分类: Python | 标签:python |字号 订阅 python安装第三 ...