Hibernate学习笔记

哨兵一号数据下载 哨兵1号数据的下载过程 阅读详情

摘要

Hibernate是JavaEE中非常流行的框架,目的是完成Java实体类到数据库中表之间的映射。它最开始只关注Java与关系型数据库中的关系,由于非关系型数据库的逐渐流行,因此它也延伸到对非关系型数据库的映射。Hibernate将JDBC进行了进一步封装,使开发人员不必写任何与数据库相关的sql语句,只需要写Java代码和配置文件就可以完成持久化操作。配置文件可以由Java注解代替,因此可以完全由Java代码就可以完成实体类到表(或者其他类型)的映射。

1 Hibernate的配置文件hibernate.cfg.xml

<?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>
  <!-- An database configuration -->
  <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
  <property name="hibernate.connection.password">lwb12345</property>
  <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/hibernatedb</property>
  <property name="hibernate.connection.username">postgres</property>
  <property name="hibernate.connection.pool_size">2</property>
  <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.hbm2ddl.auto">create</property>
  <!-- An object to table -->
  <mapping class="org.weebing.dto.UserDetails"/>
 </session-factory>
</hibernate-configuration>

<property name=“hibernate.hbm2ddl.auto”>create</ property> 写上就不需要在数据库手动建表,hibernate自动帮助我们建表。

2 实例

2.1 实体类

实体类将被Hibernate自动映射为数据库中的表

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Person {
    @Id
    private int id;
    private String name;
    private int age;
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }
    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the age
     */
    public int getAge() {
        return age;
    }
    /**
     * @param age the age to set
     */
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
	return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    
    
}

@Entity注解表示实体类,对应于数据库中的表结构。@Id注解对应于数据库中表的主键。

2.2 持久化操作

下面代码将person对象存储在了数据库中。

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.weebing.domain.Person;

public class PersonRepository {
    public static void main(String[] args) {
    // 实体类创建
	Person person = new Person();
	person.setId(101);
	person.setName("weebing");
	person.setAge(18);
	
	// 添加实体类到数据库
	Configuration conf = new Configuration().configure().addAnnotatedClass(Person.class);
	SessionFactory sessionFactory = conf.buildSessionFactory();
	Session session = sessionFactory.openSession();
	Transaction transaction = session.beginTransaction();
	session.save(person);
	transaction.commit();
    }
}

示例代码仅包含部分关键的注解,其他注解请查看官方文档。

2.3 实体类与表的映射关系

实体类表
类实例一条记录
成员变量属性
标注为@Id的成员变量主键

2.4 会话与事务之间的关系

会话(session)表示实体类与数据库的一次连接,它们之间连接中断,则会话中断。事务(Transaction)表示会话连接中的一次逻辑操作单元。事务具有四个重要特性:原子性、一致性、隔离性和持久性。他的两个关键操作是“提交”和“回滚”。由定义可知,一个会话可以包含多个事务,一个具体事务仅包含在唯一存在的会话中。

2.5 浅析Hibernate底层实现原理

包括Hibernate在内的JavaEE框架都大量使用的反射机制,反射可以在运行时获取当前对象对应的类型,从而自动调用相关的方法,而不需要开发人员再写大量重复代码了,因此,开发效率得到极大提高。

HIC测序数据生信分析——第三节,HIC数据挂载 (取决于是否运行①prune模块,若①运行,则③运行;#HIC预处理后的比对文件Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam 和contig基因组序列文件genome.fa。#HIC预处理后的比对文件Unknown_BM942-001H0001_1_val_1.Unknown_BM942-001H0001_2_val_2.hicup.bam 和contig基因组序列文件genome.fa。#这个方法简单一点。 阅读详情

相关推荐

LIGGGHTS颗粒模拟入门:从DEM原理到工程实践

离散元法(DEM)是一种用于模拟颗粒物质行为的数值方法,其核心原理是通过计算每个颗粒的运动和相互作用来预测颗粒系统的宏观行为。该方法基于牛顿第二定律和接触力学模型,能够精确描述颗粒间的碰撞、摩擦和粘结等微观机制。在工程实践中,DEM技术为优化工业设备设计、预测材料流动和减少实验成本提供了重要价值。它广泛应用于制药造粒、矿石破碎、粉体输送和农业加工等领域,帮助工程师和研究人员深入理解颗粒系统的复杂动力学。LIGGGHTS作为一款基于LAMMPS的开源DEM软件,继承了其高效的并行计算架构,并针对颗粒模拟进行了

weixin_33979203的博客 419

hibernate学习笔记

hibernate学习笔记

congine_mcfeng的专栏 158

SpringBoot 自定义注解来实现动态切换数据源

/ 初始化数据源@Override@Inherited@Pointcut(“@annotation(包名.aop.DataSource)”) public void@Pointcut 注解定义了一个切点,名称为 dynamicDataSource。@annotation(包名.aop.DataSource) 表示这个切点匹配所有带有 @DataSource 注解的方法。

晴天飛 雪的博客 1838

Hibernate马士兵学习笔记

Hibernate马士兵学习笔记

lishuanglearn的博客 324

yolov5 onnx推理时报错[ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Unexpected input data type.

yolov5 onnxruntime 推理报错

zjulkw的博客 1223

MS建模mmt

一、流程:1.定义好每个原子力场类型:Edit Sets(分组) 2.加H(一般是仅与Al-O八面体中的Al相连的O原子)、给H分组 3.“make P1”、校核化学式(正确与否) 4.扩成超晶胞(Na-mmt:4*1*1,Ca-mmt:4*2*1,illite:2*1*1,由化学式而定) 5.置换阳离子: mmt:模型中每 32 个 Si 4+有 1 个被 Al 3+ 取...

weixin_30721899的博客 2174

Rhyme/Hibernate 完整学习笔记

hibernate学习笔记有道云笔记

RhymeChiang 436

避坑指南:汇川SV660N配合SOEM时,PDO映射与CiA402状态机那些容易出错的地方

本文深入解析汇川SV660N伺服驱动与SOEM主站在PDO动态映射和CiA402状态机切换中的常见问题,提供实战代码和调试技巧。重点解决PDO配置时序、状态机转换同步等关键难点,帮助工程师避免典型错误,实现稳定通信与控制。

weixin_30653023的博客 498

Hibernate Annotation学习笔记

学习笔记

baobeituping的专栏 130

循环神经网络(RNN)

在之前学习了全连接神经网络(DNN)模型,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的。 一、神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下: 将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢? 二、为什么需要RNN(循环神经网络) 考虑这样一个问题,如果要预测句子的下一个单词是什么

小朱小朱绝不认输的博客 2万+

全志DRM框架下LVDS双屏异显配置实战

本文详细介绍了在全志DRM框架下配置LVDS双屏异显的实战经验。涵盖硬件连接、内核配置、设备树修改、背光控制及U-Boot适配等关键步骤,重点解析屏参转换技巧与双屏route配置,帮助开发者解决工业控制台等多屏应用中的显示适配问题,提升开发效率。

rnn9storyteller的博客 813

Hibernate 4 学习笔记

  Hibernate 4 学习笔记 现在附件中

上善若水,厚德载物 147

基于Python的二手奢侈品电商平台商品保值率数据爬取与分析

本文旨在探讨如何利用Python网络爬虫技术获取二手奢侈品电商平台商品数据,并通过数据分析研究奢侈品的保值率特性。研究将使用最新的爬虫技术(包括Playwright、异步处理和数据清洗技术)来高效获取数据,并利用Pandas、Matplotlib等数据分析库进行深入的数据可视化分析。本文详细介绍了爬虫的设计思路、实现过程以及数据分析方法,为奢侈品投资和消费提供数据参考。关键词:Python爬虫、奢侈品保值率、数据分析、Playwright、异步处理。

2201_76125261的博客 512

Hibernate学习笔记总结

**框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,向客户提供创新式的个性化的客户交互和服务的过程 * 其最终目标是将面向客户的各项信息和活动集成起来,组建一个以客户为中心的企业,实现对面向客户的活动的全面管理 2....

夏桑菊泡面 468

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hibernate annotaion学习笔记

学习笔记为doc格式。分享给大家  

wjt276的专栏 135

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Hibernate学习笔记(一)——简单的Hibernate实例入门

一、Hibernate简介 Hibernate是一个开源的对象/关系映射(ORM)框架,它对JDBC进行了轻量级的封装。所谓ORM就是Object/Relationship Mapping,为什么要使用对象/关系映射呢?因为使用面向对象思想编写的数据库应用程序都是要把信息存储到关系型数据库中的,使用Hibernate就可以使用面向对象的方法来操作和使用数据库了。 二、Hibernate简单实例

记录只为更好地前行 5467

Hibernate3.3.2 xml学习笔记

Hibernate3.3.2 xml学习笔记,请大家下载附件  

wjt276的专栏 160

Struts及Hibernate资料下载(学习笔记)

http://www.cjsdn.net/post/view?bid=20&id=119483&sty=1&tpg=1&age=0有Strut和hibernate的学习笔记,不错的东西!只是上面的java开发网http://www.cjsdn.net/ 需要注册才可以下载:-(

技术与人生--differ1的专栏 1788

深入浅出hibernate学习笔记1

fendou4533的专栏 705

spring hibernate 事务管理学习笔记(一)

spring hibernate 事务管理学习笔记(一)

congine_mcfeng的专栏 122

J2EE系列之Hibernate4学习笔记(一)--Hibernate简介

现在开始学习Hibernate4的相关知识。 一、登录到hibernate4官网:http://hibernate.org/ hibernate有很多产品,这里主要使用ORM,点击More: 可以看到当前最新版本是5.2.10,点击下载hibernate4的jar包。 我这里使用的是4.3.5; 二.下载hibernate包解压缩: 这里documentatio

feidie436的专栏 747
上一篇: Javascript实现博客全文搜索功能
下一篇: 斐波那契数列的实现(Java)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值