【Java】对例子里的东西解释和知识扩展一下

C#知识点总结(静态类,扩展方法,TryParse用法) 打算把博客搬到优快云上面来了,以前一直博客园写,写得到后面没什么激情了,不过呢,在优快云上面可能没太多的朋友,因为自己是搞.NET的,优快云上面C和JAVA的多些,不过我还是打算再这里开始我的.NET博客之旅。毕竟,这里是优快云,就算上不了首页,也有浏览量啊。 好了,开始吧,为了让大家有一个直观的认识,我打算把公司的框架图发给大家。 1.GridBuilder 这个里面 阅读详情

首先看配置文件hibernate.cfg.xml

再来说模型层里的Java类Student

然后再来说映射配置文件

1、assigned

主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用主键的setter方法给主键赋值,至于这个值怎么生成,完全由自己决定,这种方法应该尽量避免。

2、increment

由Hibernate从数据库中取出主键的最大值(每个session只取1次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。

特点:跨数据库,不适合多进程并发更新数据库,适合单一进程访问数据库,不能用于群集环境。

3、hilo

hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值。保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误。可以跨数据库。

<id name="id" column="id">
<generator class="hilo">
<param name="table">hibernate_hilo</param>
<param name="column">next_hi</param>
<param name="max_lo">100</param>
</generator>
</id>
<param name="table">hibernate_hilo</param> 指定保存hi值的表名
<param name="column">next_hi</param> 指定保存hi值的列名
<param name="max_lo">100</param> 指定低位的最大值

特点:跨数据库,hilo有自己内部一套算法生成标志值, 这个值只能在一个数据库中保证唯一。

4、seqhilo

与hilo类似,通过hi/lo算法实现的主键生成机制,只是将hilo中的数据表换成了序列sequence,需要数据库中先创建sequence,适用于支持sequence的数据库,如Oracle。

5、sequence

采用数据库提供的sequence机制生成主键,需要数据库支持sequence。如oralce、DB、SAP DB、PostgerSQL、McKoi中的sequence。MySQL这种不支持sequence的数据库则不行(可以使用identity)。

6、identity

identity由底层数据库生成标识符。identity是由数据库自己生成的,但这个主键必须设置为自增长,使用identity的前提条件是底层数据库支持自动增长字段类型,如DB2、SQL Server、MySQL、Sybase和HypersonicSQL等,Oracle这类没有自增字段的则不支持。

7、native

native由hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式,灵活性很强。如果能支持identity则使用identity,如果支持sequence则使用sequence。

特点:根据数据库自动选择,项目中如果用到多个数据库时,可以使用这种方式,使用时需要设置表的自增字段或建立序列,建立表等。

8、uuid

Hibernate在保存对象时,生成一个UUID字符串作为主键,保证了唯一性,但其并无任何业务逻辑意义,只能作为主键,唯一缺点长度较大,32位(Hibernate将UUID中间的“-”删除了)的字符串,占用存储空间大,但是有两个很重要的优点,Hibernate在维护主键时,不用去数据库查询,从而提高效率,而且它是跨数据库的,以后切换数据库极其方便。

特点:uuid长度大,占用空间大,跨数据库,不用访问数据库就生成主键值,所以效率高且能保证唯一性,移植非常方便,推荐使用。

9、guid

Hibernate在维护主键时,先查询数据库,获得一个uuid字符串,该字符串就是主键值,该值唯一,缺点长度较大,支持数据库有限,优点同uuid,跨数据库,但是仍然需要访问数据库。

特点:需要数据库支持查询uuid,生成时需要查询数据库,效率没有uuid高,推荐使用uuid。

10、foreign

使用另外一个相关联的对象的主键作为该对象主键。主要用于一对一关系中。

特点:很少使用,大多用在一对一关系中。

11、select

使用触发器生成主键,主要用于早期的数据库主键生成机制,能用到的地方非常少。

最后看看Hibernate的编程里用到的API的对象

实测OV5640 DVP/MIPI接口720p@60fps配置,为什么我的Zynq-7020开发板只有30帧? 本文深入解析了OV5640摄像头在Zynq-7020开发板上帧率减半的问题,从寄存器配置到硬件链路进行全面排查。重点分析了DVP/MIPI接口的720p@60fps配置,提供了关键寄存器设置、时序参数调整及硬件带宽验证方法,帮助开发者快速定位并解决帧率下降问题。 阅读详情

相关推荐

【数据分析/商业分析】面试题整理——SQL专题

数据分析\商业分析—面试题整理 自己总结的SQL类的面试题 文章目录数据分析\商业分析—面试题整理1.新增用户2.活跃用户数量3.连续登录4.次(n)日留存5.每个科目下分数最高的两名学生

awater_17的博客 1859

kotlin 扩展(扩展函数和扩展属性)

前言 在java中我们需要扩展一个类的新功能时,一般是继承该类或者使用像装饰者这样的设计模式来实现的。 如下: public class Animal { protected String name; Animal(String name){ this.name = name; } public void showName(){ S...

weixin_33978016的博客 2029

在Ubuntu 22.04上从零搭建TrinityCore 3.3.5服务器:一份保姆级避坑指南

本文详细介绍了在Ubuntu 22.04系统上从零搭建TrinityCore 3.3.5服务器的完整流程,包括环境准备、源码编译、数据库配置、资源文件处理及性能调优等关键步骤。特别针对国内开发者和低配置用户优化,提供保姆级避坑指南,帮助用户高效搭建魔兽世界经典旧世版本私服。

weixin_33393017的博客 304

Java里的new

java里的new的英文意思就是"新的"的意思。在JAVA里就是创建一个新的实例,或者说一个新的对象,一个普通类在没有实例化之前,就是new之前,它的属性,方法等等在内存中都是不存在的。只有使用new了以后,这个类的一些东西在内存中才会真的存在,也就是说只有new了之后,这个类才能用。 举例说明: Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类,public...

Jason的学习笔记 2万+

采样率转化代码C++(有理倍数,升采样、降采样均可)

【代码】采样率转化(有理倍数,升采样、降采样均可)

goudahai的专栏 547

【MATLAB代码】基于水声通信(ACOMMS)下的到达时间差(TDOA)定位的AUV自主导航例程,附完整代码

水下AUV导航系统仿真研究 本研究基于到达时间差(TDOA)技术实现了水下自主航行器(AUV)的三维导航仿真系统。系统采用四个声学信标作为定位基准,通过TDOA测量数据迭代求解AUV位置。仿真结果表明: 导航性能:系统能够有效跟踪AUV从起点(30,30,-20)到目标点(70,70,-20)的航行轨迹,定位误差保持在合理范围内。 误差分析:定位误差变化曲线显示系统具有稳定的定位精度,平均误差为0.5米左右。 技术特点:采用两步最小二乘迭代算法求解非线性TDOA方程,提高了定位精度和计算效率。 该仿真系统为

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 322

小白也能懂:用 “生活例子” 看透封装、继承、多态

刚学完变量、方法、循环这些基础,可能会觉得 “封装、继承、多态”,听起来很抽象。其实它们就藏在我们的日常生活里,甚至和你玩游戏、整理房间的逻辑很像。

m0_73907553的博客 929

MIKE水动力笔记18_如何将dfsu流场模拟结果的数据导出成txt文件

MIKE的模拟结果dfsu文件的数据是可以导出的,导出格式为xyz,我们也可以将其改后缀改为txt文本格式,其中包含了某一时刻下所有网格坐标点的数据。

晏长街的博客 4410

java重要基础知识汇总

Table of Contents 关于java语言设计理念 抽象类与接口的区别是什么 java为什么不支持多继承 java里的枚举实现机制是什么 java中的内部类 关于类Collections,Arrays,Objects java里的方法重载 关于java里的main方法 JVM,JDK,JRE三者的关系是什么 关于java语法 continue关键字和break关键字...

topdeveloperr的博客 10万+

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

a_zxswer的博客 192

【异常】Cursor报错We‘re having trouble connecting to the model provider. This might be temporary

在使用Cursor编辑器进行AI交互操作时,界面弹出如下报错提示,导致无法正常调用模型服务,影响使用流程:We’re having trouble connecting to the model provider. This might be temporary - please try again in a moment. 该报错核心含义为Cursor编辑器无法正常连接至背后的AI模型服务提供商(如OpenAI、Anthropic等),属于连接类异常,并非编辑器本身运行故障。经排查,该报错不具备破坏性,仅

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

[java学习]接口扩展

今天看lingpipe代码才发现,原来接口是可以通过继承的方式扩展的。 举个例子 接口可以扩充接口,即所谓的接口继承。 interface a { void showMe(); } interface b extends a { void hideMe(); } 这样,接口b就拥有了两个方法. 工作中才发现自己对知识的理解太混乱了,很多东西都没有系统的学习,没有形成一个体系。

追梦船的专栏 1540

C#串口通信从入门到精通(5)——打开、关闭串口

本文详细介绍如何打开串口

qq_34059233的博客 6786

java解释器是什么_java的解释器是什么

Java解释器是JVM的一部分。Java解释器用来解释执行Java编译器编译后的程序。java.exe可以简单看成是Java解释器。java解释器的作用编译一个.java 文件时,我们会获得一个名字完全相同的输出文件;但对于.java 文件中的每个类,它们都有 一个.class扩展名。因此,我们最终从少量的.java 文件里有可能获得数量众多的.class 文件。如以前用一种汇编语言写过程序,那么...

weixin_39835147的博客 1430

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

温度PID控制PLC程序

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

Java 8 里有哪些新东西?

欢迎阅读我对 Java 8 的介绍。本指南将一步步地通过所有的新的语言特性来引导你认识Java 8。在简短的示例代码的帮助下,你将会学习到如何使用默认的接口方法、lambda表达式、方法引用以及可重复的注解。 在文章的最后,你将会熟悉最新的 API变化,例如:streams、函数式接口、map 扩展以及新的 Date API。 没有过多的文本 — 仅仅是一些具有注释的代码片段。一起享受

倔强的蜗牛 1014

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

用Scheme解释器项目来了解Java

首语原本打算定的题目是,基于Java8的Scheme解释器 ,但是在对项目进行编写的时候,发现有很多scheme的语言细节、理论我了解的少之又少,而本人自认为Java基础还是比很多人要好的,所以想改成现在这个题目,用Scheme解释器来学习Java。写这个项目的缘由是最近的一场面试,这里我就安利一家公司,源伞科技 ,位于深圳的一家公司,主要是做静态分析,编译器构建的。当时我把简历发过去的时候,hr问

BURNMITE的博客 786

java的解释器名称是什么_java的解释器是什么

详细内容Java解释器是JVM的一部分。Java解释器用来解释执行Java编译器编译后的程序。java.exe可以简单看成是Java解释器。java解释器的作用编译一个.java 文件时,我们会获得一个名字完全相同的输出文件;但对于.java 文件中的每个类,它们都有 一个.class扩展名。因此,我们最终从少量的.java 文件里有可能获得数量众多的.class 文件。如以前用一种汇编语言写过程...

weixin_30039755的博客 1280

一文读懂网络安全的东西向和南北向(适合新手小白围观)

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

QXXXD的博客 2075

Java知识点——类和对象

面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机,也就是把具体的事物抽象化,并且让计算机可以理解在java中定义类时需要用到class关键字,具体语法如下// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中包含的内容称为成员变量成员方法主要说明类具有那些功能,称为类的成员方法。

qq_69611919的博客 811

使用Visual Studio Code开发和调试Java Burp扩展

几天前,我发布了Burp扩展。这是一个Burp扩展程序,使社区(免费)版 Burp 拥有相似的issue功能。由于某些原因,现在决定用Java重写。这是我学习切换到Java系列文章的第一部分。本部分讨论如何设置环境以使用进行开发。诸如自动完成,Gradle构建以及最重要的调试之类的事情。克隆存储库可以跳过博客中的某些步骤。

2401_88755455的博客 1071

java要学的东西

1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。   2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking,   multithreading,refl

furthersun的专栏 1669

java 添加扩展方法,通过向其添加方法来扩展Java库

我试图了解如何在Java中正确地“扩展”第三方库(包括类和接口)以及如何简单地将它们用作插入式替换.我目前正在使用Twitter4J库.现在我每次调用时都必须手动将@前缀为User的getScreenName()方法的结果:twitter4j.User user = getTwitterUser();String userHandle = "@" + user.getScreenName();...

weixin_26997697的博客 945

从零开始学java—— 多态(例子起手,java我有)

(自动类型转换)条件:1.大转小(转换前的数据范围比转换后的大)2.数据类型兼容(例如都是数值类型)(强制类型转换)格式:(目标类型) 变量名(可能造成数据缺失)

lansikong的博客 689

测试必备之Java知识(二)—— Java高级的东西

Java高级 类加载过程 加载(创建class对象) -> 连接(验证-准备-解析) -> 类初始化 类加载器类别 根类加载器:加载java核心类 扩展类加载器:加载JRE目录中的jar包 系统类加载器:加载用户自定义类和classpath下的jar包 Java反射机制基于什么原理 通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法...

qq_33801641的博客 156

Java解释器介绍

Java 解释器的工作程序如下:首先,它找到环境变量CLASSPATH(将Java 或者具有 Java 解释能力的工具——如浏览器——安装到机器中时,通过操作系统进行设定)。CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。 从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从 CLASSPATH 根开始

小白 4915

Java架构师需要学习的东西

既然java架构师,首先你要是一个高级java攻城尸,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池...:;java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的, 值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现

逍遥飞鹤的专栏 3577
上一篇: Nano Banana(闪电修图师)生成3D桌面手办图片+并让图片动起来!完整神级玩法教程+提示词模板分享!
下一篇: 【Java】Hibernate-4:Session缓存、Hibernate处理对象的状态了解和搭建测试架子
synchronizeOn
博客等级 码龄3年 1193粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值