基本概述:

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系列(一)补充--基础知识的更多相关文章

  1. Spring Ioc源码分析系列--Ioc的基础知识准备

    Spring Ioc源码分析系列--Ioc的基础知识准备 本系列文章代码基于Spring Framework 5.2.x Ioc的概念 在Spring里,Ioc的定义为The IoC Containe ...

  2. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  3. 玩耍Hibernate系列(二)--基础知识

    Hibernate思维导图   Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述 ...

  4. 玩耍Hibernate系列(一)--基础知识

    Hibernate框架介绍: Hibernate  ORM  主要用于持久化对象(最常用的框架) Hibernate  Search 用于对对象进行搜索,底层基于Apache Lucene做的 Hib ...

  5. .NET面试题系列[3] - C# 基础知识(1)

    1 类型基础 面试出现频率:基本上肯定出现 重要程度:10/10,身家性命般重要.通常这也是各种招聘工作的第一个要求,即“熟悉C#”的一部分.连这部分都不清楚的人,可以说根本不知道自己每天都在干什么. ...

  6. 前端系列之CSS基础知识概述

    1.什么是DIV (1).div就是html一个普通标签,进行区域划分.特性:独自占一行.独自不能实现复杂效果.必须结合css样式进行渲染. (2).div通常其是块级元素 (3).div是定义文档中 ...

  7. Objective-C系列总结之基础知识

    //第一个程序示例 #import <Foundation/Foundation.h> int main(int argc,const char * argv[]) { @autorele ...

  8. .NET面试题系列[4] - C# 基础知识(2)

    2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...

  9. EJB系列 - 会话Bean基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-session-bean/ 什么是会话 有限的时间周期内,客户端和服务器之间的连接 为什么使用 ...

随机推荐

  1. Solaris进程管理

    ps-a    列出与终端有关的进程-e    列出所有进程-A    同-e-f      列出进程完整信息-l      生成一个长列表-u username 列出某用户的进程 常用:ps -ef ...

  2. MVC 项目 在前台使用DataTable

    1:后台控制器代码 //CreateTestOutputDataHeader生成一个测试DataTable public ActionResult UseDataTable() { DataTable ...

  3. 使chrome支持跨域访问

    在做后台开发的时候,使用了iframe框架.后台主页面如下: <div style="width:185px; overflow: hidden;" id="wes ...

  4. 实现Java JTable的应用案例

    代码如下 import Java.awt.Component; import java.awt.Dimension; import java.awt.FontMetrics; import javax ...

  5. php通过正则从字符串中获取所有图片url地址

    /** * 提取字符串中图片url地址 * @param type $str * @return type */ function getimgs($str) { $reg = '/((http|ht ...

  6. SqlServer将表中数据复制到另一张表

    insert into phone2(ph,attr,type,carrier) select top 1000 ph,attr,type,carrier from phone 将表phone的字段和 ...

  7. 服务器下自动备份MySQL

    Linux下 service crond restart */ * * * * /home/mysqlbackup.sh >/home/runssh.log backup.sh #bin/bas ...

  8. JavaScript相关知识

    JavaScript的语法规则 l JavaScript区分大小写 比如变量a和变量A是不一样的变量,要严格区分大小写 l JavaScript脚本程序须嵌入在HTML文件中 因为javascript ...

  9. Linux命令行修改IP、网关、DNS的方法

    Linux中在命令行中修改IP地址.网关.DNS的方法. 网卡eth0    IP修改为 102.168.0.1 复制代码代码如下: ifconfig eth0 102.168.0.1 netmask ...

  10. Navicat Premium 11 For Mac 注册机

    http://mac.pcbeta.com/thread-138357-1-1.html