Hibernate快速起步

创建第一个Hibernate实例:

 

  • 创建实例数据库:名为hibernatetest;及库表tUser,tUser中包含“id”,“name”两个字段;
  • 构建Hibernate基础代码:POJO类和Hibernate映射文件;

 

POJO类就是无格式普通的java类,可以简单的理解为一个不包含逻辑代码的值对象(Value Object,简称VO),从数据库层来看,POJO作为数据实体的对象化表现形式,也称实体类。数据库tUser与其相对应的实体类命名为:Tuser.java

例:

 

public class Tuser implements Serializable{
	
	private Integer id;
	private String name;

	public Tuser() {
	}
....
}

 

tUser类在这里体现的是ORM中的Object层的语义,即对“用户”实体的抽象,它包含了“用户”相关属性。

tUser表是关系型数据库表,用于存储“用户”数据,根据Object和数据库定义,就可以通过映射文件建立两者之间的关联(映射)关系,这就是所谓的Mapping。

Hibernate是一种“对象---关系型数据库映射组件”,它使用映射文件将对象(object)与关系型数据(Relational)相关联。在Hibernate中通常用"*.hbm.xml"作为后缀;

构建Hibernate基础代码,有很多工具,包括常用的MyEclipse中也有,新手建议手工编写;

  • 添加Hibernate所需的jar包:

hibernate-distribution-3.5.3-Final/lib/required下左右jar文件;

hibernate下的hibernate3.jar;

  • Hibernate配置

 

Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性;Hibernate支持XML格式的配置文件和传统的.properties文件配置方式,建议用XML配置文件。XML的结构清晰,可读性好,可以直接对映射文件加以配置并由Hibernate自动加载,而.properties文件的方式,无法做到这一点(必须在程序中通过编码进行加载);

Hibernate配置文件名默认为:“hibernate.cfg.xml”(Hibernate.properties),Hibernate初始化会在CLASSPATH中寻找这个文件,并读取信息,为后期数据库操作做好准备;不推荐Hibernate内在连接池;使用第3方连接池!

典型的Hibernate配置文件如下:

 

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

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>

        <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>

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

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

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/>

    </session-factory>
</hibernate-configuration>

日志配置:采用log4j;在hibernate/lib/required下有slf4j-api-1.5.8.jar,这只是api需要为其添加实现:slf4j-log4j12-1.5.8.jar,使用slf4j-log4j,必须添加log4j的实现:log4j-1.2.16.jar;然后从/project/etc下的log4j.properties复制到项目的SRC下,log4j.properties中需要这样的配置即可:

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=info
log4j.logger.org.hibernate.type=info
log4j.logger.org.hibernate.tool.hbm2ddl=debug

 

我们需要一个Hibernate工具类(HibernateUtil.java  ),来创建Session:

 

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();
    private static SessionFactory buildSessionFactory() {
        try {
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;

    }
}
 

 

 以上完成了基础代码和Hibernate所需要的配置文件,感受下Hibernate所提供的功能,体验下Hibernate强大的功能:

 

	public static void saveTest() {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Tuser tUser = new Tuser();
		tUser.setName("keith");
		session.save(tUser);
		session.getTransaction().commit();
	}

 

 可以看到控制台上的输出:

 

Hibernate: insert  into  tUser(uName)  values(?)

 

 看下数据库,发现tUser中会多条数据;

在java中如果要进行数据库访问,一般均通过JDBC进行,期间需要进行SQL语句的编写,并通过JDBC执行这些SQL语句;通过上面例子,我们可以看出基于Hibernate的数据插入操作并不需要指定对应的SQL语句,也能完成此操作,但是代码中仅仅先用实体类的set()方法,然后session.save()操作就完成了;这正是Hibernate优势所在,它对JDBC进行了妥善封装,会自动根据对象和表之间的映射关系,将对象操作转换为SQL加以执行;

在基于JDBC的实际开发中,还需要考虑更多的问题,如:连接的关闭策略(一旦程序中出现连接泄漏,对于整个程序带来的后果可能是致命的),连接池和Statement缓存的应用等;另外一旦库表或表字段发生更改意味着开发人员要改变其SQL和其相关代码;

SpringBoot与Hibernate集成实践:初探项目开发 Spring Boot是一个开源Java基础框架,为快速构建企业级应用提供了便利。它通过自动配置简化了项目搭建和运行的过程,同时也支持与Hibernate这样的持久层框架集成。Hibernate ORM(对象关系映射)是一个流行的Java持久化解决方案,用于将对象模型映射到数据库结构上。将Spring Boot与Hibernate集成,可以构建出既轻量又高效的Java应用。开发者可以通过创建自己的自动配置类来自定义Spring Boot的行为,甚至覆盖默认的自动配置。 阅读详情

相关推荐

泛微OA E9文档管理优化:临时文件清理与存储配置指南

本文深入解析了泛微OA E9系统性能下降的常见原因——临时文件堆积,并提供了完整的优化配置指南。文章详细介绍了临时文件的产生机制,并手把手指导管理员如何通过修改存储路径、调整保留时间、设置白名单等关键配置,有效清理与管理系统临时文件,从而释放存储空间,提升系统运行效率与稳定性。

tree8的博客 431

SpringBoot系列教程起步

本篇学习目标 Spring Boot是什么? 构建Spring Boot应用程序 三分钟开发SpringBoot应用程序 本章源码下载 Spring Boot是什么? spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Bo...

weixin_30902675的博客 82

尝试使用CubeMX做stm32开发之九:SYS配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置

Forster-C的博客 9420

SpringBoot入门(二)——起步依赖

本文来自网易云社区在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置。这一篇先来看看起步依赖。项目构建过程解析前面提到,Spring Boot构建出来的也是一个Maven项目,可以看下自动生成的pom.xml文件:<?xmlversion="1.0"encoding="UTF-8"?&gt...

weixin_30455023的博客 93

STM32硬件SPI调试ADS1256的3个致命坑,CubeMX配置避坑指南

本文深入解析STM32硬件SPI调试ADS1256高精度ADC芯片时常见的3大配置陷阱,包括SPI时钟频率、时钟极性与相位、数据字节序等关键问题。通过CubeMX实战配置指南和实测数据对比,提供稳定可靠的解决方案,帮助开发者避免常见错误,提升采样精度和系统稳定性。

weixin_42550597的博客 346

别再为淘宝滑块发愁了!一个Python脚本自动获取x5sec cookie的保姆级教程

本文提供了一套完整的Python自动化解决方案,帮助开发者轻松应对淘宝滑块验证码问题。通过模拟浏览器行为、精准识别滑块缺口位置和生成拟人化移动轨迹,脚本能够自动获取关键的x5sec cookie,显著提升爬虫效率。教程涵盖环境配置、验证机制分析、代码实现及反检测策略,是解决淘宝滑块验证的实用指南。

weixin_30300225的博客 574

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

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

李阿昀的博客 12万+

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1095

Hibernate快速入门、快速使用(Hibernate级联操作)

Hibernate简介 如何使用 具体操作 创建maven工程 添加 hibernate.cfg.xml 文件 创建实体类 创建实体关系映射文件 将实体类关系映射文件注册到 Hibernate.cfg.xml 配置文件中 使用 Hibernate API 完成数据操作 pom.xml 文件中需要配置 resource 查看执行结果 Hibernate 级联操作 一对多关系 多对多关系 Hibernate 实现一对多 将实体类关系映射文件注册到 hibernate.cfg.xml 配置文件中 编写测试类

weixin_57558097的博客 4192

Centos 7 Linux 离线安装使用 MySQL 5.7:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统下离线安装 MySQL 5.7 的完整流程,包括环境准备、安装包下载、用户与目录配置、数据库初始化、服务启动与自启设置、root 密码修改、远程访问开启及防火墙配置等关键步骤,并提供了本地与远程客户端(如 Navicat、DBeaver)的连接使用方法,适合无网络环境下的数据库部署参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 6112

【ComfyUI】QwenImageEdit OOTD角色与姿态匹配换装

本文介绍了一个基于Qwen Edit OOTD 2.0的ComfyUI工作流,能够实现角色与姿态匹配的智能穿搭生成。该工作流通过整合模型推理、姿态识别、图像拼接和渲染等节点,完成从角色图、姿态图到成品穿搭图的完整生成流程。核心采用Qwen Image系列模型进行图像理解和编辑,配合ControlNet进行姿态引导。用户只需提供角色图和姿态参考图,系统即可自动完成姿态解析、语义编码、采样生成等步骤,输出与输入姿态一致的穿搭图像。该方案适用于虚拟角色展示、电商试穿等场景,能保持角色特征一致的同时灵活变换姿态,显

Mr数据杨 1586

Spring Boot起步依赖说的是什么

在没有使用Spring Boot前,我们向项目添加依赖需要考虑以下几点: 要添加什么库 添加的库Group和Artifact是什么 用的哪个版本,这个版本会不会和其他依赖产生冲突 由此引申出起步依赖: Spring Boot 通过起步依赖来帮助管理项目的依赖。先选一个最基本的起步依赖 spring-boot-starter-web,看下里面是什么: <dependencies> ...

硅脂味咖啡的博客 1408

【Codecs系列】x265编码器(十二):子像素运动搜索

在基于块运动补偿的视频编码框架中,运动搜索是最为重要的环节之一,同时也是编码端最为耗时的模块。运动搜索包括整像素运动搜索和子像素运动搜索,其中整像素运动搜索已经有很多快速算法,比如经典的三步搜索法、菱形搜索、六边形搜索以及TZSearch等等;但子像素搜索的快速算法却比较少,本文主要讲解x265编码器中的子像素搜索方法以及相关的快速搜索方法。

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 749

Hibernate快速入门

从开始Hibernate Spatial是Hibernate项目的一部分,因此我们也可以处理GIS数据了。域模型映射支持Java 8日期和时间类型。标准SQL日期/时间类型以及支持的Java 8DateTimeDATE:TIME:TIMESTAMP:和字节码增强机制从头重新设计,Hibernate可支持Maven和Gradle插件。懒初始化:字段可以声明为LAZY,只有在第一次被访问时,它们才被提取。脏检查:实体被增强,使得它们可以跟踪在持久化上下文中加载之后变化的所有属性。

unber的博客 860

温度PID控制PLC程序

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

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Eclipse快速上手Hibernate之入门实例

Eclipse快速上手Hibernate--1. 入门实例document.title="Eclipse快速上手Hibernate--1. 入门实例 - "+document.title    这篇文章主要谈谈Hibernate的入门开发,例子很简单,就是向数据表中添加用户名和密码。我分别使用了三种方法,一种是直接写代码,写Hbm映射文件等;一种是通过Hbm映射文件来生

Allin's blog 6395

OV9734 DATASHEET,完整规格书

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

IDEA快速创建Hibernate项目

IDEA快速创建Hibernate项目 选择Web Application 和 Hibernate

qq_37143903的博客 309

STM32F407中文手册

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

Hibernate快速上手

Hibernate快速上手。

weixin_45607293的博客 363

Hibernate JPA 快速入门

1、Hibernate JPA简介 1.1、认识 hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将 POJO与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 1.2、认识 JPA JPA的全称:Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,

qq_35254085的博客 2243
上一篇: 程序员的基本功
下一篇: Hibernate代码初解
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值