hibernate入门知识详解

Hibernate基础入门整理     Hibernate是一种基于ORM的思想来实现与数据库交互的框架,使用这个框架来操作数据库更为方便也更符合 面向对象的对象的思想,下面整理了一些Hibernate基础入门的知识,掌握这些基础知识对深入学习Hibernate框架原理有更好的推动     首先,Hibernate框架是基于ORM思想的,要使用这个框架首先要准备一个符合JavaBean规范的类 public class ... 阅读详情

Hibernate的入门知识

一,hibernate概述

Hibernate 是由JBoss公司著名构架师Gavin King设计,开发的一个开源ORM框架,可以从不同的角度解析Hibernate。

1.     它是连接java应用程序和关系数据库的中间件

2.     它对JDBC  API进行了封装,负责Java对象的持久化

3.     在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务逻辑层专注于实现业务逻辑。

4.     它是一种ORM工具,能够建立面向对象的域模型和关系模型的映射。

二.搭建Hibernate应用开发环境

       1)下载和安装配置

           第一步:下载。登录到Hibernate官方网站http://www.hibernate.org/6.html,下载

              第二步:解压获取必需类库文件。解压缩丛Hibernate网站下载的hibernate发布包,在根目录下有Hibernate3.jar文件,该文件就是Hibernate Core的核心类库文件,把它添加到Hibernate应程序中,在根目录lib/required目录下的所有jar文件都是Hibernate3核心类库文件编译和运行所必须的第三方类库文件,也添加到Hibernate应用程序中。如图所示所需的包

 

三.第一个Hibernate应用程序

              我们所做的第一件事就是创建我们的开发目录,并把所需要的java库文件放进去。解压缩丛Hibernate网站下载的Hibernate发布包,并把/lib目录下所有需要的库文件拷到我们新建的开发目录下的/lib目录下。

1)         第一个class

我们的第一个持久化类是一个带有一些属性(property)的简单

1.JavaBean类:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定。同时把类属性的访问级别设为私有的(private),这是推荐的设计,但并不是必须的。Hibernate也可以直接访问这些属性,而使用访问方法的好处是提供了重构时的健壮,为了通过反射机制来实例化这个类的对象,我们需要提供一个无参的构造器。

   所有的持久化类都要求有无参的构造器,因为Hibernate必须使用java反射机制来为你创建对象。构造器的访问级别可以是Private,然而当生成运行时代理时这则要求使用至少package级别的访问控制,这样在没有字节码的指令的情况下,从持久化类里获取数据会更有效率

2.映射文件:

              Hibernate需要知道怎样去加载和存储持久化的对象。这正是hibernate映射文件发挥作用的地方,映射文件告诉Hibernate,应该访问数据库里面的哪一个表及应该使用表里面的那些字段。

       一起看一下映射文件的基本结构:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

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

<hibernate-mapping>

[....]

</hibernate-mapping>

 
      

 

 

 

 

 

在hibernate-mapping标签之间,含有一个class元素,所有的持久化实体类(再次声明,或许接下来会有依赖类,就是那些次要实体)都需要一个这样的映射,来把类对象映射到sql数据库里的表

User类对应的映射文件

<hibernate-mapping

   package="com.hbsi.domain">--指定java实体类的包名

 

   <class name="User" table="user">---说明实体类怎样映射成表

      <id name="id" column="id">--column可省略

        <generator class="native"/>--声明主键

      </id>

      <property name="name"/>

      <property name="brithday"/>

   </class>

 

 

 
 

 

 

 

 

 

 

 

 


               id元素标识符属性的声明,name=”id”声明了java属性的名字(hibernate会使用getId()和SetId()来访为它),column属性则告诉Hibernate,我们使用User表的哪一个字段作为主键,嵌套的generator元素指定了标识符生成策略,在这里我们指定为native。它根据已配置的数据库自动选择最佳的标识符生成策略。

               和id元素一样,property元素的name属性告诉hibernate使用哪个getter和setter方法,在此类之中会寻找getName(),getBrithday()

3.Hibernate配置

       现在我们已经有了一个持久化类和它的映射文件,该是配置Hibernate的时候了。为了保存Hibernate的配置,我们可以使用一个简单的Hibernate.properties文件,或者一个稍微复杂的Hibernate.cfg.xml。

 

 

 

<!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>

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

       <property name="connection.url">jdbc:mysql:///demo</property>

      

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

       <property name="connection.password">123</property>

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

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

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

   

      

       <mapping resource="com/hbsi/domain/User.hbm.xml"/>

      

    </session-factory>

</hibernate-configuration>

 
 

 

 

 

 

 

 


最开始的四个Property元素包含JDBC链接信息。方言(dialect)的property元素指明Hibernate生成的特定SQL变量。

把这个文件拷贝到源代码目录下面,这样他就位于classpath的根目录的最后。Hibernate在启动时会在classpath的根目录查找名为hibernate.cfg.xml的配置文件。

Hibernate.show-sql:指定是否把hibernate运行时的sql语句输出到控制台。

Hibernate.format_sql:指定是否把hibernate运行时的sql语进行格式化以便于阅读。

Hibernate.Hbm2ddl.auto:指定应用程序在运行时,当产生SessionFactory实例时对是否自动检查数据库结构,可选值有:vaildate(检查数据库结构),update(数据库结构发生变化是修改),create(将数据库的DDL导出到数据库)和crete-drop(SessionFactory实例创建时将数据库schema的DDL导入到数据库,在sessionFactory被显示关闭时将数据库自动删除)

启动和辅助类

 是时候加载和储存一些Event对象了,但首先我们得编写一些基础的代码以完成设置。此过程包括创建一个全局sessionFactory,并把它储存在应用程序代码容易访问的地方。SessionFactory可以创建打开新的session,一个session代表一个单线程的单元操作,sessionFactory则是一个线程安全的全局对象,只需要被实例化一次。

     我们将创建一个HibernateUtil辅助类来负责启动Hibernate和更方便的操作SessionFactory,让我们来看一下他的实现吧!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


把HibernateUtil.java 放在开发目录的源代码路径下,与方User的包并列。

4.加载并存储对象

我们终于可以使用Hibernate来加载和存储对象了,编写一个带有main()方法的TestHibernate类

public class TestHibernate {

public static void main(String[] args) {

User user=new User();

         user.setName("Tom");

         user.setBrithday(new Date());

         addUser(user);

         }

         public static void addUser1(User user){

                   Session session=null;

                   Transaction tx=null;

                   try{

                            session=HibernateUtil.getSession();

                            tx=session.beginTransaction();

session.save(user);

                           

                            tx.commit();

                           

                   }finally{

                           

                            if(session!=null)

                                     session.close();

                   }

         }

        

}

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 


我们创建了个新的User对象并把它传递给Hibernate。现在Hibernate负责与SQL打交道并把INSERT命令传给数据库。在运行之前,让那个我们来看一下处理session和Transaction的代码。

      首先,只要你持有SessionFactory(幸亏我们有HIbernateUtil,可以随时获取得到),大可在任何时候,任何地点调用这个方法

   其次,session在第一次被使用的时候,其生命周期就开始。然后它被Hibernate绑定到当前线程。当事务结束的时候,不管是提交还是回滚,Hibernate会自动把Session从当前线程剥离,并且关闭它。

 

 

 

 

 

从 Token 到 Agent:一文串起 AI 大模型核心概念 摘要:本文系统解析了现代AI系统的八大核心概念:Token(语言处理的最小单位)、Context(AI的短期记忆)、Prompt(指令接口)、Tool(能力扩展器)、MCP(工具生态协议)、Agent(自主智能体)和AgentSkill(专业技能封装)。文章揭示了这些概念如何共同构成AI从基础语言理解到自主决策的技术脉络,重点阐述了Token对计算成本的影响、Prompt工程的重要性、Tool如何突破AI的能力边界,以及Agent如何通过"感知-规划-执行-反思"循环完成复杂任务。最后指 阅读详情

相关推荐

易康eCognition9.0分类|规则集和机器学习的方法的面向对象的多尺度分割分类

基于易康eCognition9.0软件的规则集和机器学习的方法的面向对象的多尺度分割分类

weixin_46493028的博客 1万+

Hibernate - 基础入门详解

【1】什么是Hibernate 一个框架,一个Java领域的持久化框架,一个ORM框架。 ① 什么是对象的持久化 狭义的理解,“持久化”仅仅指把对象永久保存到数据库中。 广义的理解,“持久化”包括和数据库相关的各种操作: 保存:把对象永久保存到数据库中。 更新:更新数据库中对象(记录)的状态。 删除:从数据库中删除一个对象。 查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载...

小小默:进无止境 2827

手把手教你用QEMU模拟AST2600-EVB开发板:OpenBMC环境搭建全流程

本文提供了一份详尽的实战指南,手把手教你使用QEMU模拟器搭建AST2600-EVB开发板的OpenBMC环境。内容涵盖从工具链准备、系统镜像获取(官方与自编译),到QEMU启动命令解析、网络配置(用户与桥接模式),以及通过SSH、WebUI和Redfish API访问服务的全流程,帮助开发者在个人电脑上快速构建安全、可复现的嵌入式开发与测试沙盒。

play7的博客 1134

Hibernate入门

1.Hibernate是什么 Hibernate 是持久层的ORM框架。Hibernate对JDBC进行了封装,也就是说,我们可以使用Hibernate来完成原来我们使用JDBC完成的操作,也就是与数据库的交互操作。 2.什么是ORM ObjectRelationMapping(对象关系映射),所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把Java应用程序中的对象,持久化到关系型数据库的表中。通过操作Java对象,就可以完成对数据库表的操作。可以把ORM理解为关系型数据和对象的一个..

weixin_58670730的博客 804

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1421

手把手教你学Simulink——基于多能互补微电网系统的建模与优化场景实例:风柴储联合供电系统在孤岛模式下的功率分配建模

本文介绍了使用MATLAB/Simulink和Simscape Electrical构建风柴储联合供电系统的建模方法。系统包含风力发电、柴油发电、储能电池等模块,重点研究孤岛模式下功率分配策略。详细说明了从创建项目、添加模块到搭建风力发电系统(含MPPT控制)、柴油发电系统及集成各模块的全过程,并提供了仿真参数设置建议。通过分析频率偏差、电池SOC等关键指标,验证了系统在维持稳定运行的同时能有效利用可再生能源。该模型为研究多能互补微电网提供了实验平台,未来可拓展更高效的能量管理策略和AI技术的应用。

MHD0815的博客 1万+

一、Hibernate快速入门

概述 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。 Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架...

热爱不止,前行不息 1386

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大,也会导致速度变慢。下面以位移台为例讲解,如何标定位移台。

FlyWine的博客 2891

Hibernate01-入门

一、搭建Hibernate环境 1、Hibernate框架简介 Hibernate是数据持久化工具,也是一个开放源代码的ORM解决方案。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供面向对象的数据访问API。 Hibernate是ORM解决方案 :基于ORM,Hibernate在对象模型和关系数据库的表之间建立了一座桥梁。通过Hibernate,程序员就不需要再使...

weixin_43094361的博客 567

STM32堆栈溢出问题及解决方法

堆栈是用于存储函数调用和局部变量的内存区域,它是一种先进后出的数据结构。如果函数嵌套层级过深或者局部变量占用的内存空间过大,堆栈的大小可能不足以容纳这些信息,从而导致堆栈溢出。在一些特殊情况下,可以使用堆内存替代堆栈,以避免堆栈溢出问题。在STM32的工程中,可以通过修改链接脚本文件(.ld文件)中的堆栈大小参数来增加堆栈空间。通常,堆栈大小设置为RAM的一小部分,但需要根据具体应用的需求进行调整。堆栈溢出是嵌入式系统开发中常见的问题之一,特别是在使用STM32微控制器时。3.3 使用堆内存替代堆栈。

ZwcCsharp的博客 2595

YOLO11改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

YOLOv11改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

魔改工程师的博客 4542

Hibernate框架基础——Hibernate入门

Hibernate入门Hibernate介绍Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 在分层结构中处于持久化层,封装对数据库的访问细节,使业务逻辑层更专注于实现业务逻辑。 Hibernate的主页为:http://www.hibe

李阿昀的博客 5万+

基于STM32L4XX 、HAL库的TMC2226-SA-T步进电机驱动器驱动程序应用设计

集成的功率MOSFET可处理高达2A RMS的电机电流,并具备保护与诊断功能,确保运行稳健可靠。作为业界最先进的STEP/DIR步进电机驱动系列,该芯片通过升级设计实现无噪音、高精度运行,为用户提供高性价比且极具竞争力的解决方案。// 用于PDN_UART单线通信。// HAL_UART_Transmit - 注意PDN_UART是单线,收发共线。.huart = &huart1, // PDN_UART连接的USART。均方根步进/方向控制接口,提供8、16、32或64微步针设置,

PP_Cottage的博客 639

【框架】[Hibernate]构架知识点详解入门与测试实例

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215 本文源自【大学之旅_谙忆的博客】 Hibernate介绍: Hibernate是一个开放源码的、非常优秀、成熟的O/R Mapping框架。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。 O/R Mapping 对象关系映射(Object Relational Mapping,简称OR

谙忆-陈浩翔 5432

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Hibernate构架知识点详解入门与测试实例

目录(?)[-] Hibernate介绍 Hibernate体系结构图 Hibernate构架入门步骤 hibernatecfgxml配置文件详解Hibernate核心接口 1 Configuration接口2 SessionFactory接口3 Session接口4 Query类5 Transaction接口 一个完整示例显示了Hibernate编程基本思路 首

石头_Sky的博客 526

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

(转载)[Hibernate]构架知识点详解入门与测试实例

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215 本文源自【大学之旅_谙忆的博客】 Hibernate介绍: Hibernate是一个开放源码的、非常优秀、成熟的O/R Mapping框架。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。 O/R Mapping  对象关系映射(Object Relational Map

happyljw的博客 600

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【JAVA开发框架】Hibernate框架知识点详解入门教程与测试实例

Hibernate介绍: Hibernate是一个开放源码的、非常优秀、成熟的O/R Mapping框架。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。 O/R Mapping 对象关系映射(Object Relational Mapping,简称ORM)技术,是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。 对象和

1000

Hibernate映射文件配置

文章目录什么是Hibernate什么是ORM 什么是Hibernate Hibernate是一个持久层的ORM框架 什么是ORM ORM:Object Relational Mapping(对象关系映射)。指的是将一个java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表 ...

qq_42216575的博客 683

hibernate1.1

第1课 课程内容   1、  HelloWorld   a)  Xml   b)  Annotction   2、  Hibernate原理模拟-什么是O/RMapping以及为什么要有O/RMapping   3、  常风的O/R框架   4、  Hibernate基础配置   5、  Hibernate核心接口介绍   6、  对象的三种状态   7、  ID生成策略

三月神的专栏 806

hibernate学习笔记

框架介绍 hibernate介绍:hibernate是一个对象关系映射框架,对jdbc进行了封装,是一个全自动的orm框架 orm介绍:Object Relation Mapping(对象关系映射),用于实现面向对象编程语言里不同类型系统的数据之间的转换 hibernate优势 1). 对JDBC进行了封装,大大简化了访问数据库的繁琐代码 2). 优秀的orm框架,简化编程工作,使操作数

灵活的钱辰昌。 513

Hibernate入门第一讲——Hibernate框架的快速入门

Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以

李阿昀的博客 12万+

Hibernate 框架入门

一、Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hi...

热心网友 5万+

史上最简单的Hibernate入门简介

其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。 在这篇文章将不涉

doodoofish的专栏 28万+

hibernate入门实例

一、准备工作 1,下载hibernate。地址:http://hibernate.org/orm/downloads/ 2,下载数据库驱动(以MySql为例)。地址:http://www.mysql.com/downloads/ 3,创建一个测试数据库hibernate_first,再创建一个User表,各字段如下: 二、工程实例 1,新建一个普通Java工程,在Buil

passion_wu128的专栏 5361
上一篇: Hibernate缓存策略详解
下一篇: Hibernate中复合主键的配置
日依
博客等级 码龄15年 165粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值