03_Hibernate------单表映射

Ubuntu下OpenOCD+GDB的安装、编译及使用 目标开发板(芯片):stm32mp157aaa 仿真器:ST-Link 操作系统:Ubuntu 18.04 调试软件:OpenOCD OpenOCD的安装 首先下载OpenOCD有多种方式,可以GitHub上下载,目录下打开终端,输入 git clone git://git.code.sf.net/p/openocd/code openocd 下载完整的OpenOCD的文件夹。进入到OpenOCD的目录下,开始安装。 接着,OpenOCD适用于微处理器的debug和烧写,需要下载相关库 sud 阅读详情

第03章 单表映射

 

  1. 单类→单表的映射

①映射主键

②映射日期类型

③数据类型映射对照表

  1. Hibernate中主键生成方式
    1. hilo

①由Hibernate根据high/low算法生成主键

②hilo标识符生成器在生成标识符时,需要读取并修改HI_TABLE表中的NEXT_VALUE值

③完全不依赖于任何数据库系统

④OID必须为long、int或short类型,如果为byte则会抛出异常

<generator class= "hilo">

   <param name= "table">HL_table </param>

   <param name= "column">NEXT_VALUE </param>

   <param name= "max_lo">]10</param >

</generator>

⑤高低算法

参见:《[Ymh_sirius]_参考资料:高低算法.doc》

    1. identity

①由具体数据库负责生成主键

②要求数据库将主键定义为自动增长类型

③支持自增主键的数据库:MySQL、DB2、微软SQLServer、Sybase等;

但是有局限性,因为Oracle不支持;

④OID必须为long、int或short类型,如果为byte则会抛出异常

    1. sequence

①利用底层的数据库提供的序列生成标识符

②要求底层数据库支持序列:DB2、Oracle

③OID必须为long、int或short类型,如果为byte则会抛出异常

④配置方式

<id name ="studentId" type="java.lang.Integer">

    <column name ="STUDENTID" />

    <generator class ="sequence">

        <param name ="sequence">stu_seq</ param>

    </generator >

</id >

 

    1. native

①依据底层数据库对自动生成标识符的支持能力,来选择使用identity、sequence或hilo

②由于native标识符生成器能够根据底层数据库系统的类型,自动选择合适的方式生成主键,所以非常适合跨数据库平台开发

③OID必须为long、int或short类型,如果为byte则会抛出异常

    1. assigned(指定的)

Hibernate和数据库都不负责生成主键的值,完全由程序员自己指定。

    1. 其他主键生成方式

select、seqhilo、foreign、guid等等

  1. 在Hibernate中映射日期和时间
    1. Java数据类型和JDBC API的对应关系

注:时间戳:从1970年1月1日0点0时0分0秒开始计时,到当前时间所经过的毫秒数

    1. Hibernate中的日期映射方式

大部分情况下Hibernate可以根据Java类型自动找到对应的Hibernate映射类型,从而确定数据库表中的字段类型,但如果一个Java类型对应的Hibernate映射类型不只一个,那么就必须为Java类型明确指定Hibernate映射类型,例如:

                                                

 

  1. Hibernate映射类型对照表

Java类型

Hibernate映射类型

标准SQL类型

大小

java.lang.Integer/int

integer/int

INTEGER

4字节

java.lang.Long/long

long

BIGINT

8字节

java.lang.Short/short

short

SMALLINT

2字节

java.lang.Byte/byte

byte

TINYINT

1字节

java.lang.Float/float

float

FLOAT

4字节

java.lang.Double/double

double

DOUBLE

8字节

java.math.BigDecimal

big_decimal

NUMERIC

 

java.lang.Character/java.lang.String/char 

character

CHAR(1)

定长字符

java.lang.String

string

VARCHAR

变长字符

java.lang.Boolean/boolean

boolean/yes_no/true_false

BIT

布尔类型

java.util.Date/java.sql.Date

date

DATE

日期

java.util.Date/java.sql.Timestamp

timestamp

TIMESTAMP

日期

java.util.Calendar

calendar

TIMESTAMP

日期

java.util.Calendar

calendar_date

DATE

日期

byte[]

binary

BLOB

BLOB

java.lang.String

text

TEXT

CLOB

实现java.io.Serializable接口的任意Java类

serializable

BLOB

BLOB

java.sql.Clob

clob

CLOB

CLOB

java.sql.Blob

blob

BLOB

BLOB

java.lang.Class

class

VARCHAR

定长字符

java.util.Locale

locale

VARCHAR

定长字符

java.util.TimeZone

timezone

VARCHAR

定长字符

java.util.Currency

currency

VARCHAR

定长字符

 

063、推挽变换器的磁偏问题与解决 本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。 阅读详情

相关推荐

中断向量表配置不当引发Default_Handler死循环问题解析

本文深入解析STM32开发中因中断向量表配置不当导致的Default_Handler死循环问题。以STM32F407VET6为例,详细阐述中断向量表的工作原理、常见触发场景及系统化排查方法,并提供使用STM32CubeMX的正确姿势和手动配置的注意事项,帮助开发者快速定位并解决这一常见难题。

grafana6viz的博客 178

Hibernate单表映射

建立实体类 配置好SessionFactory之后,我们就可以开始建立一对一的单表映射了。首先需要建立一个实体类,这里Getter、Setter、toString、equals等方法省略了。我们可以方便的使用IDEA或者Eclipse的生成代码功能轻松生成。 package yitian.data; imp...

weixin_33913332的博客 160

深度学习|卷积神经网络

介绍卷积神经网络基本理论,包括卷积层、池化层和全连接层,并阐述LeNet卷积神经网络的构建过程。

weixin_58243219的博客 5722

hibernate ORM映射——单表映射

1 映射关系总览 ①单类→单表 ②单向n对1 ③双向1对n ④1对1基于外键 ⑤1对1基于主键 ⑥单向多对多 ⑦双向多对多2 单类→单表的映射 ①映射主键 ②映射日期类型 ③映射大对象 ④hbm文件中的其他属性 ⑤数据类型映射对照表3 Hibernate中主键生成方式 3.1 increment ①由Hibernate以递增的方式为代理主键赋值 ②Hibernate会先

无道圣教主 759

Windows下Python多版本共存与切换的终极指南(含环境变量详解)

本文详细解析了在Windows系统下实现Python多版本共存与切换的完整方案。通过深入讲解环境变量Path的底层机制,提供了从安装策略、精细化Path管理到创建快速切换脚本的实战指南,并介绍了py启动器和虚拟环境等高级技巧,帮助开发者彻底解决版本冲突问题,提升开发效率。

v6b7n8m9q0的博客 537

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 346

iBatis2学习笔记:单表映射

环境: MySQL5.51b iBatis 2.3 Spring 2.5.4 一、SQL /*==============================================================*//* Table: foo...

weixin_34037977的博客 136

R语言中如何获取前向选择(forward selection)选出的变量

前向选择是一种常用的特征选择方法,可以在给定一个预测模型的情况下,逐步添加变量来确定最佳的预测模型。在R语言中,可以使用适当的函数和库来执行前向选择,并获取选出的变量。以下是一个详细的步骤,展示了如何使用R语言执行前向选择并获得选出的变量。通过按照上述步骤,你可以使用R语言执行前向选择,并获取选出的变量。记住,前向选择是一种特征选择方法,可以根据不同的评估指标选择最佳的预测模型。接下来,准备用于前向选择的数据。使用"summary"函数查看前向选择的摘要,并使用"which"函数获取被选中的变量。

WangWEel的博客 924

Hibernate初探--单表映射

(1)写SQL语句有什么不好    1.不同的数据库使用的SQL语法不同。比如PL/SQL与T/SQL    2.同样的功能在不同的数据库中有不同的实现方式。比分页SQL    3.程序过分依赖SQL对程序的移植及扩展,维护等带来很大的麻烦(2)Hibernate介绍:     Java领域的一款开源的ORM框架技术     是对JDBC进行了非常轻量级的对象封装(本质上还是通过JDBC访问数据库...

one_2_one的博客 272

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 828

Sigrity Power DC Package Multi-Resistor Compact ET Model Extraction模式提取封装基板电热阻模型

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 437

Hibernate初探之单表映射(一)

1.什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 写SQL语句的缺点: 1.不同的数据库使用的SQL语法不同。比如:PL/SQL(Oracle)与T/SQL(SQL Server) 2.同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。 3.程序过分依赖SQL对程序的移植及扩展、维护等带来很大的麻烦。 为了完全使用面向对象思想

不积跬步,无以千里 653

【异常】解决 Cursor 报错 Unexpected seqno: 2 != 1. Please try again, or contact support if the issue 的排坑指南

在使用 Cursor 辅助编程时,你是否遇到过 AI 突然中断输出,并在右下角弹出一个红色的 Network Error 弹窗?今天我们就来彻底解析并解决这个网络断连问题。

奶爸的编程之路,也就一周冷个三天 2470

Hibernate 03 : 单表映射

1.目标:将一个Java类映射为一个数据库表 2.主键生成方式 ①结论:绝大部分情况下建议使用native方式生成主键 ②increment [1]由Hibernate提供一个自增的值作为主键。 [2]Hibernate的算法是:先读取当前数据库表中主键列的最大值,在此基础上+1,作为新的主键值。 [3]在并发情况下,假设有两个线程T1和T2 T1读取了最大值为50T2读取了最大

liuzeyu19940927的博客 251

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

hibernate的表的映射

第03章 单表映射   1 映射关系总览 ①单类→单表 ②单向n对1 ③双向1对n ④1对1基于外键 ⑤1对1基于主键 ⑥单向多对多 ⑦双向多对多   2 对象关系映射文件 2.1 Hibernate使用*.hbm.xml文件定义持久化类和数据库表之间的映射关系,并以这个文件为依据生成各种SQL语句 2.2 映射关系 ①持久化类:数据库表 ②持久化类属性:数据库表中

jc_zhibaobao的博客 413

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

hibernate搭建环境及单表映射实例

hibernate是java领域的一款开源的orm框架技术; hibernate对jdbc进行了轻量级的封装; hibernate处于业务层与数据库层之间的持久化层,把对象通过映射到数据库中。 hibernate不建议直接使用jdbc的connection操作数据库,通过使用session操作数据库,session可以理解为操作数据库的对象 调用session的save(),update(),del

一只萌萌的博客 469

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Hibernate八】HQL之单表查询

HQL:hibernate query language 在hibernate下查询使用的是HQL; Classes代表的是班级bean; HQL语句中是面向类的操作,不是面向表!比如:from Classes,Classes代表的是类,不能小写! 常用的单表查询sql语句: SELECT * FROM classes;  SELECT COUNT(*) FROM clas

温故而知新 747

PINN求解Burgers方程反向问题:调参与实操经验分享

偏微分方程的参数反向识别在流体力学、材料科学等领域应用广泛,但传统数值方法往往面临计算成本高、对噪声敏感等挑战。物理信息神经网络(PINN)通过将控制方程嵌入损失函数,实现了数据拟合与物理约束的统一优化,为参数反演提供了全新思路。以Burgers方程为例,其非线性对流项与粘性耗散项耦合,常产生陡峭梯度,对网络训练和自动微分提出较高要求。实践中,损失权重分配、激活函数选择(如tanh)及采样点布局会显著影响参数识别精度。本文从工程视角详解了PINN解决Burgers方程反向问题的完整流程,并针对训练震荡、噪声

weixin_33937778的博客 414

Hibernate继承映射

用户(父类): public class User implements Serializable { private Integer id; private String username; private String password; public User() { super(); } ...此处省略get/set方法... } 普通用户(子类)...

iteye_15317的博客 120

利用Eclipse开发Hibernate应用程序

原文地址:http://www.yesky.com/397/1922897.shtml利用Eclipse开发Hibernate应用程序 作者: bromon 出处: Java研究组织 责任编辑: 方舟 [ 2005-03-17 08:29 ]   Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境,Hibernate也是目前牛叉得不得了的框架,至少在EJB

我的足迹 773

03---Hibernate快速入门

Hibernate快速入门课程内容介绍:    第一天 : 环境搭建、 单表的增删改查    第二天 : hibernate一级缓存、 持久化对象状态和转换、 多表映射操作     第三天 : 多表查询、 抓取策略     第四天 : 事务操作、 二级缓存 、 (组件映射、继承映射)1.导入相关jar包    部分jar文件说明:    hibernate3.jar 核心jar包    lib/j...

一诺 265

Hibernate-note02

hibernate  查询分为单表和多表查询 一.单表查询 1.HQL---官方推荐的方式 01.查找所有 String hql="from User"; //这个语句中是from后面加上类名,切记不是表名 Query query=sess.createQuery(hql);//创建一个query对象,传入hql List userlist=query.list();//右边不是一

苏摩的专栏 479

Hibernate查询以及优化策略

文章目录回顾今天任务教学目标Hibernate查询Hibernate优化策略==一. HQL查询==1. HQL单表查询1.1 准备项目1.2 HQL单表基本查询2. HQL多表查询2.1. 多表查询分类2.2 HQL多表查询二. QBC查询1. QBC查询介绍2. QBC查询测试==三. 本地SQL查询==1. Hibernate使用SQL语句介绍2. Hibernate使用SQL语句四. 延...

超域的博客 538

hibernate的多表查询

一.数据库中多表之间的关系 1.多对多 使用中间表。 中间表只有俩个外键,引用俩个多对多表的外键。 不能有其他字段信息,至于中间表,应该用联合主键。 细节:任何一个多方的表和中间表去比较,都是一(中间表)对多(多表)的关系。 2.一对一(多对一或者一对多) (1)第一种(一对多) 建立外键的方式。 使用外键约束,非空约束,唯一约束。 它是把外键字段加了非空约束和唯一约束,从而实现了一对一。 (2)第二种(多对一) 使用主键的方式。 让其中一张表即使主键,而是外键。 (3)如何确立俩表之间的关系 找外键。(主

qq_45421186的博客 375

Hibernate查询以及优化策略04

一. HQL查询 1. HQL(hibernate query language)单表查询 1.1 准备项目 创建项目: hinernate-03-query 引入jar,同前一个项目 复制实体(订单,客户),映射,配置,工具类. 1.2 HQL单表基本查询 1 /** 2 * 演示HQL的查询(单表查询) 3 * 1...

weixin_34248705的博客 178

史上最简单的Hibernate4视频教程(附源码和笔记)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33806509的博客 169
上一篇: 02_Hibernate-----Session
下一篇: 04_Hibernate----ORM映射:单向多对一
HelloWorld_AA
博客等级 码龄9年 18粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值