Hibernate的基础知识

Hibernate

一.JavaEE三层架构

1.Web层  Struts2

2.Service层 spring

3.Dao层 hibernate  mybatis    对数据库实现增删查改

二.MVC思想

1.Model

2.View

3.Controller

三.Hibernate概述

什么是框架:使用框架后,框架可以帮我们实现一部分内容,对于程序员来说,我们可以少写一部分代码实现功能。

什么是hibernate框架:

1.hibernate框架应用在javaee三层架构中的dao层里(hibernate使用的地方)

2.在dao层里面做数据库的增删查改,使用hibernate实现crud操作,其底层就是我们所学的jdbc,它是对jdbc进行了封装。

3.使用hibernate好处:不需要写复杂的jdbc代码,不需要写sql语句实现

4.Hibernate是开源的轻量级的框架

5.Hibernate版本  hibernate 3.x  hibernate 4.x--过渡版本  hibernate 5.x--现在用的

什么是ORM思想

ORM(Object Ranational Mapping)  对象关系映射

:把对象根据一定的映射规则映射到关系型数据库中

1.让实体类的属性和表里的字段形成一一对应的关系

2.不需要直接操作数据库表,而只需要操作表对应的实体

画图分析

类 表

属性 字段

Java类型 数据库类型

ORM框架  :hibernate  mybatis

持久化:将程序数据在瞬时状态和持久状态之间转换的机制/过程

ORM是完成持久化的一种思想

四.Hibernate的使用

1.导入架包

2.创建实体

3.写映射配置文件---让实体类和数据库表一一对应 映射关系

4.创建hibernate核心配置文件

a) 配置数据库信息

b) 配置hibernate信息

c) 配置映射文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!-- 1. 数据库连接配置 -->

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql:///vote?useUnicode=true&characterEncoding=UTF8</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">root</property>

<!-- 数据库方法配置,hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql -->

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

<!-- 2. 其他相关配置 -->

<!-- 2.1 显示hibernate在运行时候执行的sql语句 -->

<property name="hibernate.show_sql">true</property>

<!-- 2.2 格式化sql -->

<property name="hibernate.format_sql">true</property>

<!-- 2.3 自动建表 -->

<property name="hibernate.hbm2ddl.auto">create</property>

<!-- 3. 加载所有映射 -->

<mapping resource="com/bdqn/pojo/User.hbm.xml" />

</session-factory>

</hibernate-configuration>

5.实现添加操作

实现步骤:

a) 加载配置文件

b) 创建sessionFactory

c) 使用sessionFactory创建session

d) 开启事务

e) 写crud逻辑

f) 提交事务

g) 关闭资源

四.Hibernate配置文件详解

五.Hibernate核心api

1.Configuration

到src下面去找hibernate.cfg.xml核心配置文件,创建对象,把配置文件放到类路径里

2.SessionFactory

使用Configuration创建sessionFactory对象

3.Session

Session 就好比jdbc 里的 conn

Session里有操作数据库的相关方法

Session是单线程对象

4.Transaction

load和get方法区别

此时返回的是一个代理对象,这个对象只有有id

六.Hibernate中对象的三个状态

瞬时 (Transient )/临时状态/自由状态

持久 (Persistent)

脱管 (Detached)

瞬时对象特征:

  第一、不处于 Session 的缓存中,也可以说,不被任何一个 Session 实例关联。

  第二、在数据库中没有对应的记录。

持久化对象特征:

  第一、持久化对象总是被一个 session 关联。

  第二、持久化对象与数据库中的记录对应。

第三、Session清理缓存的时候,会根据持久化对象的改变,更新数据库。

脱管对象特征:

  第一、Session断开关联

  第二、持有OID

2.三种状态的区别分析:

  只要与session关联的就是持久态。

  Session没关联,没有OID就是瞬时状态。

  Session没关联,有OID的就是游离状态。

时间: 2024-09-19 07:04:10

Hibernate的基础知识的相关文章

Spring框架基础知识

本人博客文章网址:https://www.peretang.com/basic-knowledge-of-spring-framework/ Spring框架简介 Spring , 一个开源的框架 , 由Rod Johnson创建. Spring是为了解决企业应用开发的复杂性而创建的 , 可以让简单的JavaBeans/POJO来实现之前只有EJB[1]才能完成的事情. Spring还提供了大量API简化与其他第三方框架的集成. 纵览Spring , 你会发现Spring可以解决非常多的问题 ,

Spring笔记(基础知识)01

1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现"一站式"的企业应用开发. 03.内容: a.IoC容器 b.AOP实现 c.数据访问支持:简化JDBC/Hibernate编码    声明式事务 d.Web集成 04.Spring设计理念 Spring是面向bean的编程,IoC(Inversion of Control) ,AOP(Aspect Orient

框架 day65 Mybatis入门(基础知识:框架原理,入门[curd],开发dao层,全局与映射配置)

Mybatis 基础知识(一) 第一天:基础知识(重点) mybatis介绍 mybatis框架原理(掌握) mybaits入门程序(掌握) 用户信息进行增.删.改.查 mybatis开发dao层方法:(掌握) 原始dao开发方法(dao接口和实现类需要程序员编写) mapper代理开发方法(程序员只需要编写接口) SqlMapConfig.xml(mybatis全局配置文件)(掌握) mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis动态sql(掌握)   1   

基础知识漫谈(1): 想到哪儿写到哪儿

一.想到哪儿写到哪儿 给公司新员工培训,和网上的新手做交流,我最先强调的都是基础. 基础有什么用? 1.节省沟通成本 有天,java群里来了个新人,上来就提了一个问题: “我代码跑不起来,怎么办?” 这一看就是还没入门,没办法提供具体的信息. 于是有个有耐心的老鸟出来了,开始了一连串提问:异常栈看一下?有编译期异常吗?贴出你的main函数看看? 新人收到了问题并且抛出了你都在说什么异常. “你还是截图吧.”老鸟说. 这里涉及到了异常栈,编译期,main函数等等再基础不过的知识,有那么部分毫不客气

[转]基础知识漫谈(1): 想到哪儿写到哪儿

[转]基础知识漫谈(1): 想到哪儿写到哪儿 本文转自(http://www.cnblogs.com/anrainie/p/5606570.html) 一.想到哪儿写到哪儿 给公司新员工培训,和网上的新手做交流,我最先强调的都是基础. 基础有什么用? 1.节省沟通成本 有天,java群里来了个新人,上来就提了一个问题: “我代码跑不起来,怎么办?” 这一看就是还没入门,没办法提供具体的信息. 于是有个有耐心的老鸟出来了,开始了一连串提问:异常栈看一下?有编译期异常吗?贴出你的main函数看看?

【搜索引擎基础知识3】搜索引擎相关开源项目及网站

部分内容转自:http://blog.csdn.net/hguisu/article/details/8024799 一. 开源项目 1.Lucene全文检索系统 http://lucene.apache.org和 http://www.lucene.com.cn/ Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文

struts基础知识

1.框架 (1).是一系列jar包,其本质是对JDK功能的拓展. (2).框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题. 2.框架的作用:       框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量.与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用 3.框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. (1).  框架.设计

Java的入门基础知识

https://course.tianmaying.com/java-basic%2Bjava-environment#0 作者:David链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界.万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的

沉淀,再出发:Java基础知识汇总

沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的语法,对象的定义,类.接口.继承.静态.动态.重载.覆盖这些基本的概念和使用方法,到稍微高级一点的多线程,文件读写,网络编程,GUI使用,再到之后的反射机制.序列化.与数据库的结合等高级一点的用法,最后将设计模式应用其中,产生了一个个新的概念,比如Spring.Spring MVC.Hibernat