hibernate基本介绍及基本配置(一)

Hibernate技术深度解析 Hibernate 支持 HQL(Hibernate Query Language)和 Criteria API 两种查询方式,允许开发者编写更灵活、更复杂的查询语句。 阅读详情

hibernate是一个orm框架,orm:对象关系映射。其实,一个项目追溯到最底层的内容,无非就是完成和数据库的交互,这时候,jdbc技术出现了,他更是一种规范,但是,我们完成最基本的增删改查操作都会浪费我们很多时间,我们本应该将更多的精力放在业务逻辑上,hibernate就是包装了jdbc的一个持久化orm框架,我们通过它,可以更简单的完成和数据库的交互。

上面提到了两个地方,一:持久化,何为持久化,就是把对象保存起来,让他一直存在,我们要用时就去取;二:orm思想:对象关系映射,java是一个面向对象的语言,《java编程思想》中提到过Everything is an object,面向对象中,我们关心类,对象,属性;而我们操作的数据库,现在较流行的数据库,如mysql,oracle,都是关系型数据库,也就是说他们是面向关系的,面向关系中,我们关系,表,表的行(记录),表的列(字段);orm的出现正是解决这个思想不统一的矛盾,将表中的记录用对象的形式展开,我们对记录的操作也就转变为对对象的操作,orm采用元数据的方式描述映射细节,常用的就是xml格式的文件;

hibernate的开发步骤:

1.编写hibernate的配置文件,hibernate.cfg.xml

2.编写持久化类

3.编写对象关系映射文件,*.hbm.xml

4.编写hibernate访问数据库的代码

第一步:编写hibernate的配置文件,hibernate.cfg.xml,我们应该从这个配置文件中得到一些基本的信息,如数据库的访问url,username,password一些基本的连接信息以及hibernate配置的相关信息

<span style="font-size:24px;"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

    <session-factory>
    
    <!-- 配置连接数据库的基本信息 -->
	<property name="connection.username">c##scott</property>
	<property name="connection.password">tiger</property>
	<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
	<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
	 
	<!-- 配置hibernate的基本信息 -->
	<!-- hibernate所使用的数据库方言 -->
	<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
	
	<!-- 执行操作时,是否在数据台打印sql语句 -->
	<property name="show_sql">true</property>
	
	<!-- 是否对sql进行格式化 -->
	<property name="format_sql">true</property>
	
	<!-- 指定生成数据表的策略 -->
	<property name="hbm2ddl.auto">update</property>
	
	<!-- 指定关联的对象关系映射文件 -->
	<mapping resource="com/jiangtao/hibernate/helloworld/News.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
</span>
第二步:编写持久化类

①提供一个无参的构造器(无参那一定是用到反射喽)

②提供一个表示字段OID,一般映射为数据库中的主键

③提供字段的访问方法(get/set)

④不能声明为final类:在运行时生成代理是hibernate重要的一个功能,如果持久化类没有实现任何接口,自动是使用CGLIB生成代理,如果声明为final类,将无法使用CGLIB生成代理

⑤重写equals和hashCode方法,如果要把持久化类实例放到set中(关联映射时),需要重写

hibernate不要求持久化类继承任何父类或实现接口,这可以保证代码不被污染。这就是Hibernate被称为低侵入式设计的原因


<span style="font-size:24px;">package com.jiangtao.hibernate.helloworld;

import java.sql.Date;

public class News {
	private int id;
	private String title;
	private String author;
	private Date date;
	
	public News() {
		
	}
	
	public News(String title, String author, Date date) {
		super();
		this.title = title;
		this.author = author;
		this.date = date;
	}
	
	
	
	@Override
	public String toString() {
		return "News [id=" + id + ", title=" + title + ", author=" + author
				+ ", date=" + date + "]";
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public Date getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.date = date;
	}
	
}
</span>

第三步:编写对象关系映射文件,*.hbm.xml :安装hibernate-update-tools工具会自动生成

<span style="font-size:24px;"><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-7-20 9:50:00 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.jiangtao.hibernate.helloworld.News" table="NEWS">
    
        <id name="id" type="int">
            <column name="ID" />
            <!-- 指定生成OID 的方法  nativa为数据库本地的生成方法-->
            <generator class="native" />
        </id>
        
        <property name="title" type="java.lang.String">
            <column name="TITLE" />
        </property>
        
        <property name="author" type="java.lang.String">
            <column name="AUTHOR" />
        </property>
        
        <property name="date" type="java.sql.Date">
            <column name="DATES" />
        </property>
        
    </class>
</hibernate-mapping>
</span>
第四步:编写hibernate访问数据库的代码

①获取 Configuration 对象
②获取 SessionFactory 对象
③获取 Session,打开事务
④用面向对象的方式操作数据库
⑤关闭事务,关闭 Session


<span style="font-size:24px;">package com.jiangtao.hibernate.helloworld;

import static org.junit.Assert.*;

import java.sql.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.Service;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;


public class HibernateTest {

	public static void main(String[] args) {
		new HibernateTest().test();
	}
	public void test() {
		
		//1.创建sessionFactory
		SessionFactory sessionFactory = null;
		 //1)创建configuration
		Configuration configuration = new Configuration().configure();
		 //4.0֮可以直接创建sessionFactory
		 //sessionFactory = configuration.buildSessionFactory();
		 //5.0版本是这样创建的
			/*ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
													.applySettings(configuration.getProperties())
														.build();
		 	*/
		 //2).4.x要先创建一个serviceRegister,他需要传入configuration.getProperties()
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
									.applySettings(configuration.getProperties())
												.buildServiceRegistry();
		 //3).传入一个serviceRegister来创建sessionFactory
		sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		//2.获取session
		Session session = sessionFactory.openSession();
		//3.开启事务
		Transaction transaction = session.beginTransaction();
		//4.ִ创建持久化类对象
		News news = new News("JAVA", "jiangtao", new Date(new java.util.Date().getTime()));
		//保存操作
		session.save(news);
		//5.关闭事务
		transaction.commit();
		//6.关闭session
		session.close();
		//7.关闭sessionFactory
		sessionFactory.close();
	}

}
</span>
运行程序,我们会发现数据库中表已经建好了,数据也插入进去了,当然这是正向工程,我们也可以使用逆向工程,通过表来生成域模型和对象的映射文件。


晶圆表面缺陷检测现状概述 凹坑,凸起,尖角,沟槽),使用光束对晶圆进行照射,收集反射光和散射光信息进行缺陷判断,进一步可分为无图案晶圆表面检测和宏观缺陷检测设备。KLA使用SR-DUV光,检测精度在10nm以下。扫描电子显微(电子束和晶圆表面产生二次电子,X射线等)获取高分辨率的图像,然后用图像处理表面缺陷(凹坑,凸起,尖角,沟槽等)表面容貌和材料信息,分辨率可达5-10nm。晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷,损伤、毛刺等缺陷,主要设备供应商KLA,AMAT,日立等,其中KLA在晶圆表面检测设备占有市场52%左右。 阅读详情

相关推荐

Oracle Linux中/var/log/pcp/pmlogger目录膨胀问题分析与解决

本文详细分析了Oracle Linux系统中/var/log/pcp/pmlogger目录异常膨胀的常见原因与解决方案。当PCP性能监控框架的pmlogger服务日志轮转或清理机制失效时,会导致该目录无限增长,威胁系统稳定。文章提供了从服务状态诊断、配置文件审查到安全清理与预防策略的全流程实战指南,帮助运维人员快速回收磁盘空间并恢复服务正常运行。

weixin_29208327的博客 380

Hibernate框架【一】——HIbernate框架介绍

Hibernate是一个开源的Java对象关系映射(ORM)框架,它提供了一种方便的方式将Java对象与关系型数据库进行映射和交互。通过Hibernate,开发人员可以使用面向对象的方式操作数据库,而不需要直接编写SQL查询语句。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1万+

避开命令行!在VMware vCenter 8.0图形化界面里搞定SSL证书续期全流程

本文详细介绍了在VMware vCenter 8.0图形化界面中完成SSL证书续期的全流程,包括计算机SSL证书、VMCA根证书和STS证书的管理。通过可视化操作,管理员无需使用命令行即可高效处理证书问题,确保vSphere环境的稳定运行。文章还提供了证书监控与预警配置的实用技巧,帮助用户提前规避证书过期风险。

weixin_27051161的博客 284

Hibernate简单讲解

所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象持久化到关系型数据库的表中。通过操作java对象,就可以完成对数据库表的操作。可以把ORM理解为关系型数据和对象的一个纽带,开发人员只需关注纽带一段映射的对象即可。Hibernate框架使用ORM思想对数据库进行crud操作在web阶段学习的javabean,更准确的叫法应该是实体类ORM:Object Relational Mapping,对象关系映射。让实体类和数据库表对应,让实体类属性和表中字段对应。

weixin_42694511的博客 5026

Windows报错“The system cannot find the file specified“的PATH环境变量解决方案

摘要: Windows系统中出现"The system cannot find the file specified"错误通常因PATH环境变量配置问题导致。本文提供解决方案:1)检查并修正PATH变量(通过命令行或图形界面添加缺失路径);2)确认程序安装路径及拼写无误;3)恢复误改的系统变量。示例演示了Python路径配置及无效路径清理方法,建议谨慎修改变量、使用绝对路径并定期检查。附参考表格详述操作步骤,帮助用户高效解决问题并优化系统环境。

shejizuopin的博客 3522

Augustus手动安装教程

本文记载了如何结合conda手动安装Augustus

m0_65437087的博客 1259

hibernate框架简介

目录 一、 历史与背景 1. 应用程序的分层体系结构 2. 持久化层(如图1右) (1)什么叫持久化? (2)什么叫持久层? (3)为什么要持久化?增加持久层的作用是什么? (4)目前在持久化层领域,实现模式有以下几种: 3. ORM介绍 二、Hibernate定义 三、Hibernate的作用 四、Hibernate的应用 五、Hibernate API简介 1.Hibernate API中的接口可以分为以下几类: 2. Hibernate的核心接口框图 六 Hib...

renxingzhadan的专栏 7923

TI CC2642R蓝牙5.2模块实战:从零搭建智能门锁原型(附电路图)

本文详细介绍了如何基于TI CC2642R蓝牙5.2模块从零搭建智能门锁原型,涵盖硬件选型、低功耗配置、蓝牙安全交互等关键环节。通过CC2642R的高性能MCU和蓝牙5.2技术,开发者可实现低功耗、高安全性的智能门锁设计,并提供实用的电路图和PCB布局建议。

o5p6q的博客 110

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

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

李阿昀的博客 12万+

从外包到转正:一个华为OD亲历者的真实工作体验与避坑指南

本文分享了一位华为OD员工从外包到转正的真实经历与实用建议。通过详细解析华为OD的日常工作、转正核心指标、机试备考技巧及职场突围策略,为读者提供了一份全面的避坑指南。特别针对机试E卷的高频考点和刷题方法,给出了具体的数据分析和实战经验。

weixin_33686714的博客 712

下采样优化实战:用ADown显著提升YOLOv11的多尺度特征保持能力

ADown 以“可编程梯度信息+多分支特征融合”打破了传统下采样的性能壁垒,为 YOLOv11 带来了多尺度特征的精准传递能力。从原理到代码集成,本教程已为你铺就了一条“小目标检测精度跃升”的实战路径。现在就动手尝试吧——当你看到模型对极小目标也能精准识别,且特征图细节完整时,你会明白这份技术探索的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在下采样领域的边界。

FJN110的博客 425

Hibernate入门第三讲——Hibernate的常见配置

在《Hibernate快速入门》一文中,我有讲到Hibernate的两个配置文件,今天就来详细地介绍这两个配置文件。Hibernate的配置详解在Hibernate中,我们使用时主要有两种配置文件: 核心配置文件——hibernate.cfg.xml(主要描述Hibernate的相关配置) 映射配置文件——xxx.hbm.xml 核心配置文件Hibernate的核心配置文件,即hibernate.c

李阿昀的博客 1万+

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

Hibernate框架介绍以及入门 【二】Hibernate的常见配置

Hibernate框架介绍以及入门 【二】 Hibernate的常见配置 一、关于XML提示的配置 1、配置hibernate-mapping-3.0.dtd - XML 配置这三个地方 第一个;location 第二个:URL 第三个: 2、配置hibernate-configuration-3.0.dtd - XML 其它步骤与上面类似 ...

程序员猫爪 554

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JAVA中Hibernate基本配置

Hibernate是一个ORM(对象关系映射)框架,它研究的是如何以面向对象的方式来操纵数据库,其底层实现是JDBC。但使用它我们可以极大地简化了对数据库的操作(CRUD),这里所体现的映射主要是java中类结构与数据库中表结构中的映射、类结构中的属性成员与数据库中字段的映射以及继承映射、关联映射等。但本文要讲的是,其中的一些基本配置,以及如何让Hibernate运行起来。 在这里我使用的是hi...

YKG 1670

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Hibernate基本配置

Maven配置 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.1.Final</version> </dependency> 解决Hibernat

记事本 6059

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

hibernate笔记(一)hibernate基本配置

hibernate的基本配置 在hibernate.cfg.xml里进行配置 这个文件一般都是自动生成的,我们通常xml配置文件用的会比较多一些,因为比较好操作计算机也能够较快的读取。 在开始用hibernate时要进行一些配置,下面我们看一下具体配置吧 com.mysql.jdbc.Driver// test前面的///默认就是用 地址为本机 端口号默认3306

qq_16008855的专栏 415

Hibernate 配置

Hibernate 配置 配置 Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表。Hibernate 也需要一套相关数据库和其它相关参数的配置设置。所有这些信息通常是作为一个标准的 Java 属性文件提供的,名叫hibernate.properties。又或者是作为 XML 文件提供的,名叫 hibernate.cfg.xml。 我们将考虑 hibernate.cfg.xml 这个 XML 格式文件,来决定在我的例子里指定需要的 Hibernat.

lvdingding的专栏 178

Hibernate系列之基本配置

转自:https://www.cnblogs.com/xujian2014/p/4784909.html 阅读目录 一、概述 二、配置准备 三、配置步骤 四、注释版本的配置步骤 五、配置细节 回到顶部 一、概述   Hibernate是一个开放源码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使我们可以使用对象的编程思维来操作数据库。 回到顶部 二、配置准备...

caiyiii的专栏 163

Eclipse配置Hibernate

1.配置环境        Eclipse3.2;MyEclipse5.1;由于版本不同,配置Hibernate的流程也不尽相同; 2.配置工程        2.1新建一个工程;        2.2选中工程,工具栏->MyEclipse->add Hib

robin622的专栏 3187

Hibernate总结—hibernate配置文件

    Hibernate作为ORM框架的一个强大实现,配置文件是必不可少的。.NET中对ORM框架的实现,用的是EntityFramework,Java这边则是Hibernate。在说Hibernate配置文件之前,先说说EF的配置文件,这样有个共鸣。       EF的配置文件主要有这么三部分:   1、连接数据库       连接数据库需要数据库驱动,数据库服务,用户名和密码。 ...

Coder Yasmine 2583

hibernate 基本配置详解,hibernate入门配置

这篇博客,主要是对hibernate常用的标签一个说明,如果你还不懂怎么配置基本的hibernate可以去看这篇博客https://blog.youkuaiyun.com/tomwildboar/article/details/80694269orm元数据(实体配置文件)&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE hibernate-ma...

小道仙的后宫 686

Hibernate配置手册一

Hibernate.cfg.xml配置文件:                            java:comp/env/jdbc/quickstart        net.sf.hibernate.connection.DatasourceConnectionProvider        net.sf.hibernate.dialect.SQLServerDialect       

tutugogo的专栏 8924

hibernate基本项目配置

hibernate基本项目配置什么是hibernate在项目中添加hibernate(5.2.12.Final)支持添加hibernate相关依赖在resource目录下添加hibernate.cfg.xml(核心配置文件)测试xml中DTD支持下方没有出现提示的解决方法 什么是hibernate 对象与关系型数据库之间的映射管理框架 hibernate的优势 跨数据库的无缝移植(SqlServer、Oracle、MySql) 在项目中添加hibernate(5.2.12.Final)支持 添加hi

qq_46705598的博客 383

Hibernate介绍以及配置

1. 基本概念 Hibernate就是基于JAVA语言开发的,处于数据访问层的一套ORM开源框架,基本可以替代JDBC而存在,可以跨数据库平台,并且大大的减少了代码量。 Hibernate的本质就是封装了JDBC和SQL(用HQL替换SQL,自动分析数据库平台,生成对应的SQL)。 ORM就是把Object类型的数据映射到关系型数据库中,这样我们可以通过操作JAVA对象来达到操作数据库的目的。 [...

xhuihong的博客 132
上一篇: 运算符优先级口诀,偶然间看到的 分享
下一篇: 我的见解之hibernate(二)
Java_Soldier
博客等级 码龄10年 27粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值