ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

初始Hibernate框架

2022-04-30 23:03:49  阅读:259  来源: 互联网

标签:Hibernate Java 框架 对象 数据库 程序员 ORM 持久 初始


 

Hibernate(全自动化)

Hibernate是一种主流持久化ORM框架Object Relation Mapping对象关系映射,将面向对象映射成面向关系。解决持久化操作,使得程序员可以从编写繁复的JDBC工作中解放出来,专注于业务,提高程序员开发效率;并且具有可靠的移植性。

(MyBatis是一个半自动化的ORM框架)

持久化

持久,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。

持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中,XML数据文件中等等。Hibernate当中叫做加载。

1.狭义概念:数据存储在物理介质不会丢失

2.广义概念:对数据的CRUD操作都叫持久化

3.加载:Hibernate的概念是数据从数据库加载到session

ORM

O-Object,R-Relation,M-Mapping,顾名思义就是对象(JavaBean)关系(关系型数据库)映射。它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。

public class User implements Serializable{
   private Integer id;
   private String username;
   private String password;
   // get,set,构造器...
}
User user = new User(1,"张三","111");
对象关系数据库
类名 表面
类的实例 表中的一行记录
类的属性 表的字段
create table USER{
ID NUMBER(4) PRIMARY KEY,
USERNAME VARCHAR2(10),
PASSWORD VARCHAR2(8)
}

 

二、为什么要做持久化和ORM设计

  • 代码复杂

用JDBC的API编程问题访问数据库,代码量较大,特别是访问字段较多的表的时候,代码显得繁琐、累赘,容易出错,程序员需要消耗大量的时间、精力去编写具体的数据库访问SQL语句,还要十分小心其中大量重复的源代码是否有疏漏,并不能集中精力于业务逻辑开发上面。

ORM则建立了Java对象与数据库对象之间的影射关系,程序员不需要编写复杂的SQL语句,直接操作Java对象即可,从而大大降低了代码量,也使程序员更加专注于业务逻辑的实现。

 

  • 数据库连接问题

    采用JDBC编程,必须保证各种关系数据之间不能出错,极其痛苦;

    ORM建立Java对象与数据库对象关系影射的同时,也自动根据数据库对象之间的关系创建Java对象的关系,并且提供了维持这些关系完整,有效的机制。

  • 耦合度

    JDBC属于数据访问层,但是使用JDBC编程时,程序员必须知道后台是用上面数据库、有哪些表、各个表有哪些字段、各个字段的类型是什么,表与表之间什么关系,创建了什么索引等等与后台数据库相关的详细信息。相当于软件程序员兼职数据库DBA。

    使用ORM技术,可以将数据库层完全隐蔽,呈献给程序员的只有Java的对象,程序员只需要根据业务逻辑的需要调用Java对象的Getter和Setter方法,即可实现对后台数据库的操作,程序员不知道后台采用什么数据库、有哪些表、有什么字段、表与表之间有什么关系。

    于是,系统设计人员把ORM搭建好后,把Java对象交给程序员去实现业务逻辑,使持久层与数据库层清晰分界。

    追求的是高内聚,低耦合。

标签:Hibernate,Java,框架,对象,数据库,程序员,ORM,持久,初始
来源: https://www.cnblogs.com/mhy123/p/16211713.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有