kodojdo指南第七章

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

第七章 PersistenceManagerFactory

PersistenceManagerFactory 创建PersistenceManager实例以供应用程序使用.它允许你配置数据连接方

式和指定所创建的PersistenceManager的默认设置.你也可以通过它在编程中获知你当前厂商支持的JDO选项

.使你能使用产品的全部特性来最优化你的程序.

7.1. 获得PersistenceManagerFactory

  JDO厂商实现PersistenceManagerFactory 时也许支持公开的构造函数,但推荐你使用JDOHelper的

getPersistenceManagerFactory 方法来获得PersistenceManagerFactory方法.这个方法的属性参数提

供了工厂的配置信息.从getPersistenceManagerFactory 返回的PersistenceManagerFactory 对象是"

冰冻的",试图改变它的属性设置会导致JDOUserException.这是因为返回的工厂可能来自连接池,和其他应用

程序组建共享.
  JDO要求具体的PersistenceManagerFactory 类实现Serializable 接口.这允许你创建和配置

PersistenceManagerFactory,然后序列化到文件或者存储到JNDI树供日后取出和使用.

7.2. PersistenceManagerFactory 属性

  多数PersistenceManagerFactory 接口包含JAVA BEAN风格的getter 和setter方法来读取和设置属性

.这些属性按照功能可以分为两类:数据连接配置,默认持久化管理者和事务选项.

  下面章节介绍了每一种属性,许多可以通过传给getPersistenceManagerFactory 方法的属性参数来设置

.这是一种情况.在方法声明后列出了属性的配置代码.
 

7.2.1. 连接配置
  使用下面的属性告诉JDO如何连接你的数据库

1)指定数据连接的用户名

2)指定数据连接的密码

3)数据连接的URL

4)数据连接的驱动类名称

5)连接工厂的JNDI位置用来取得数据连接.这个属性会覆盖上面列出的数据连接属性.

  连接工厂可以取得连接.这个属性覆盖所有其他的数据连接属性,包括连接工厂名称.工厂的准确类型是和具

体实现相关的,许多JDO实现品要求标准JAVA连接器体系连接工厂(JCA).在JDBC层上实现的JDO要求给出JDBC

数据源,其他的实现品会使用其他的工厂类型.

  在一个受管制的环境,从主要连接工厂取得的连接会自动加入到正在进行的任一全局事务.JDO会要求一个另

外没有配置为参与全局事务的连接工厂.例如,Kodo默认的数据存储标识生成算法要求一个自身的非管制事务.

工厂的JNDI位置可以在这个属性中指定.


7.2.2. 默认的PersistenceManager 和事务

  下面的设定会作为PersistenceManagers 和PersistenceManagerFactory生成的事务的默认属性值.一

些实现品可能不支持所有这些属性,如果你设置不支持属性的值,会导致JDOUnsupportedOptionException


1)设置这个属性为true.这样在你的程序里,  PersistenceManagers 和它所管理的能持久类能被多线程的

访问.如果属性设为false,那么一些JDO实现品会通过避免同步的方式来优化性能.

2)默认值为true以使用最优化的事务.在事务的章节我们会讨论最优化事务.

3)如果这个属性值为true,那么在事务提交之后,持久对象的字段值不会被清空.否则,持久字段会被清空,在下

次访问它们的时候它们会再从数据库中读取值.

4)管理事务回滚时持久事务字段的行为.如果设为true,那么它们的值会被设为事务没有开始时的值.

5)指定是否在事务外读持久状态.如果属性为false,在事务之外,任何枚举extent, 执行查询或者访问非主键

行为都会导致JDOUserException

6)指定是否在事务外写持久状态.如果设为false,任何在事务外的修改持久字段行为都会导致

JDOUserException
  注意事务外的更改并不会存储到数据库.当被修改对象一进入事务后更改就马上被忽略.

7)这个属性控制当执行查询时是否考虑持久实例的更改.设为true,则表示当前事务的更改可以忽略.这通常使

实现品可以使用数据库的本地接口来执行查询.如果设为false,JDO会在执行查询前保存数据的更改,或者在内

存中执行事务性查询.两者都会影响性能.


7.3. 获得PersistenceManagers

  PersistenceManagerFactory 接口包含两个getPersistenceManager 方法.一个版本以用户名和密码

设置PersistenceManager的数据连接,另一个无参,依赖于PersistenceManagerFactory的连接用户名和连

接密码.
两个方法都会返回一个新构造的PersistenceManager对象或者返回连接池的一个PersistenceManager实例

.

  从PersistenceManagerFactory获得第一个PersistenceManager 之后,工厂的配置进入"冰冻"状态.任

何对属性的改变都会导致JDOUserException.
 
VendorName: JDO厂商

VersionNumber: 产品版本号

The supportedOptions method returns a Collection of Strings enumerating the JDO

options supported by the implementation. The following option names are recognized:

  除了支持PersistenceManagers,PersistenceManagerFactory 还支持当前JDO实现品的元数据

.getProperties 方法返回一个属性对象,至少包含下列关键字值:

  VendorName: JDO厂商
  VersionNumber: 产品版本号

  supportedOptions 方法返回一个字符串集合,列举该JDO实现品所支持的配置选项.以下选项名是承认的:

 javax.jdo.option.TransientTransactional
 javax.jdo.option.NontransactionalRead
 javax.jdo.option.NontransactionalWrite
 javax.jdo.option.RetainValues
 javax.jdo.option.Optimistic
 javax.jdo.option.ApplicationIdentity
 javax.jdo.option.DatastoreIdentity
 javax.jdo.option.NonDurableIdentity
 javax.jdo.option.ArrayList
 javax.jdo.option.HashMap
 javax.jdo.option.Hashtable
 javax.jdo.option.LinkedList
 javax.jdo.option.TreeMap
 javax.jdo.option.TreeSet
 javax.jdo.option.Vector
 javax.jdo.option.Map
 javax.jdo.option.List
 javax.jdo.option.Array
 javax.jdo.option.NullCollection
 javax.jdo.option.ChangeApplicationIdentity
 javax.jdo.query.JDOQL

Kodo支持除javax.jdo.option.ChangeApplicationIdentity和

javax.jdo.option.NonDurableIdentity. 之外的所有选项

自动驾驶系统架构解析:从传感器到决策控制的完整链路(附实际案例) 本文深入解析了自动驾驶系统从感知、决策到控制的完整架构链路。通过对比摄像头、毫米波雷达、激光雷达等核心传感器的特性与选型策略,阐述了多传感器融合的必要性。文章结合行为决策、运动规划及控制执行的实际案例,揭示了系统集成、数据闭环与功能安全等工程化落地的关键挑战,为理解自动驾驶技术提供了清晰的蓝图。 阅读详情

相关推荐

手把手教你用TL431设计反激电源补偿器(附波特图调试技巧)

本文详细介绍了如何使用TL431设计反激电源补偿器,并提供了波特图调试技巧。通过实战经验分享,帮助工程师快速掌握补偿网络设计、分压电阻计算和稳定性判据,避免常见设计误区,提升电源稳定性与效率。

weixin_29201859的博客 378

Java数据对象(JDO)快速入门

  JDO有一个充满活力的社区。所以如果你正在为你的POJO寻找持久化解决方案,JDO是一个通过JCP项目开发的标准。JDO为POJO持久化提供了一个丰富和具有全部特征的JSR规范,并且很多开发商正在提供竞争性的JDO实现。EJB3.0,正由Sun微系统和来自于不同的持久化开发商的专家创建,将是未来持久化模型的选择。  持久化Java技术对象到任何关系型数据库都是一项富有挑战性的任务,因为它必须潜

银狐的专栏 3625

NVIDIA Jetson AGX Xavier设置风扇转速、工作模式及性能监控

Xavier的风扇在开机之后是默认关闭的,每次重启都需要手动打开风扇,后续可能考虑修改bashrc文件进行自动开启 这个是显示当前风扇的转速,默认应该是0,表示关闭,最大是250 cat /sys/devices/pwm-fan/target_pwm 可以通过修改该文件的值来修改风扇转速 vim /sys/devices/pwm-fan/target_pwm 我一般使用的是100这个值 作者:ryan_ren 链接:https://www.jianshu.com/p/d3c2041f7f7d 来源:简书 著

weixin_43877080的博客 1万+

persistence java_Java数据持久层 - Persistence Manager Factory

昨天还在用Torque,今天听说Hibernate更好,明天说不准又有更好的持久层工具...如何使应用程序不变化的情况下选择不同的持久层呢?看看Finetix LLC的资深顾问Charles Chan给我们现身说法。Charles Chan在文章 Object-Relational Mapping with Apache Jakarta OJB中介绍了Apache OJB的使用,并在文章附录中提到...

weixin_29166013的博客 419

【库卡机器人】接线步骤

准备X11插头接线,X11插头可以接入机器人外部安全回路接线,其中外部使能信号线也接在此接口上,如果机器人系统没有配置外部使能装置,那个此接口上的外部使能信号端须短接,短接规则为:20-21、23-22、31-30、33-32。持续按住使能键,保持使能上电状态,分别按住示教器右侧每个轴对应的+或-按键,测试机器人每一个轴是否能正常运行,如果一切正常,说明机器人控制正常,机器人可以正常使用。将一根黄绿色等电位线接入其中的一个接地端,并与机器人的接地端相连,使得控制柜与机器人等电位。

qq_45161762的博客 9440

1976国际标准大气_Matlab

输入高度,计算空气密度、气压、温度、声速 function [airDens,airPress,temp,soundSpeed]=Atmos(geomAlt) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1976 U.S Standard Atmosphere Interpolation % % Note: Function does not extr.

JISANSAN的博客 1万+

JDO快速入门

<br />JDO快速入门Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了 JDO,程序员就可以使用类来定义数据对象,然后支撑程序就会根据类的定义来管理对给定数据库的实际的数据访问了。  <br /><br />      JDO是以Sun

liuzhigang1237的专栏 1万+

高德地图可视化入门:零基础用Python+高德API打造你的第一个热力图

本文详细介绍了如何使用Python和高德地图API从零构建商业级热力图。通过环境配置、地理编码、数据清洗到最终可视化展示的全流程指南,帮助开发者快速掌握地图可视化技术,特别适合展示商圈人流、疫情热点等地理分布数据。

weixin_29053067的博客 306

JDO对开发的帮助有哪些 - 实例解析

JDO对开发的帮助有哪些 - 实例解析(本文的版权属作者本人,欢迎转载,但必须注明出处和原作者)1 权责划分:业务开发组和数据库管理组对一个项目来讲,开发团队在逻辑上划分为两块:业务开发组和数据库管理组。两者各有特点,各有责任,但相互之间界限很清晰,不会有什么纠缠。下面用表格说明一下二者的区别:人员构成业务开发组 系统分析员、程序

sun2bin的专栏 2694

遇到一个诡异的WiFi网络问题:同一个办公室苹果电脑上不了网,其他电脑都可以

先来把问题掰开揉碎地看清楚:在一个普通的办公室WiFi网络中,所有设备——Windows电脑、安卓手机、甚至是那台老旧的Linux服务器——都能正常联网,唯独苹果电脑(可能是MacBook、iMac或者Mac mini)像被下了魔咒一样,连不上网。这种情况不仅让人抓狂,还透着一股神秘感。为什么偏偏是苹果电脑?难道WiFi路由器对苹果有“偏见”?这些症状都指向一个核心问题:苹果电脑与办公室WiFi之间,似乎存在某种“沟通障碍”。但这障碍到底出在哪里呢?是苹果电脑自己的问题,还是网络设置在“针对”它?

网络技术联盟站 842

镜头调焦的 调整的是焦距还是像距?

在镜头 “调焦”(即日常拍照时的)中,调整的核心是,而非焦距。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1352

java提交spark代码_使用java代码提交Spark的hive sql任务,run as java application

我的环境:hadoop 2.7.1、spark 1.6.0、hive 2.0、java 1.7目标:通过java -jar xxx.jar的方式来运行提交spark应用,执行查询hive sql。问题一:首先要提一下,按照java -jar执行,会报java.lang.OutOfMemoryError: PermGen space错误,所以需要使用以下参数启动java-Xms1024m-Xmx...

weixin_33196106的博客 458

【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ (Java)

如果你收到的是双机位C卷考试通知,需要针对性地调整备考策略。自2025年11月19日起,华为OD机试已正式从双机位A卷切换至。复杂度明显提升,需要组合多个算法点。题面相对简单,直接考查编程基本功。考查问题分析、算法选择和优化能力。通常为1-2个核心算法点的应用。

算法大师! 168

执行spark sql 遇到的问题

总结一下执行spark sql遇到的问题: 没

baiyangfu的专栏 1万+

OV9734 DATASHEET,完整规格书

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

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

七牛云存储之Kodo开发环境搭建

2016年6月6日,带着激动的心情,加入到七牛这个大家庭,进入到技术支持部门;经过半个多月的学习,对七牛的产品和服务有了一些基础的理解,同时因为工作中经常会有很多开发者给七牛提工单,提到七牛开发者中心文档不清楚,所以想将自己的所学,所得通过优快云平台以博客的形式分享给大家。 七牛云最基本的服务就是提供存储功能,同时提供三备份,避免数据的丢失同时能修复数据;所以从今天开始,给大家带来七牛

PEACEFUL000的专栏 2678

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

kodojdo指南(前两章)

 第一章:  jdo是sun公司为实现java对象事务数据存储的透明持久性而制定的规范.本文档概述jdo,除非特别声明,否则本文档的说明适用于所有jdo规范的具体实现品.1.1 读者层次 本文适合那些想了解jdo并实践应用到日常工作的开发人员,您应对java和面向对象编程概念有较深的了解,并且熟悉XML.而您可以没有数据库编程和持久性数据的处理经验. 假如你想了解jdo的方方面面,那么你应

WalkingWithJava 1537

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 198

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 130

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 456

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 409

数据库主键选型指南:BIGINT vs VARCHAR

主键选型关乎数据库性能与架构演进。BIGINT(如雪花算法)在顺序写入、二级索引开销和分布式生成上优势显著,适合高并发核心链路;而传统 VARCHAR UUIDv4 因随机性导致频繁页分裂、存储膨胀,性能堪忧。UUIDv7 通过时间戳有序性实现高效追加写入,结合 BINARY(16) 存储可兼顾性能与安全,成为现代微服务新选择。关键在于:主键应稳定、无业务含义,优先选用趋势递增的紧凑类型,并根据场景合理采用双主键模式或 ULID 等替代方案。

小李同学的博客 301

自动化运维选型:四条技术路线的能力边界,以及它们为什么不能互相替代

自动化运维怎么选型?拆解配置管理、基础设施即代码、作业调度与场景化编排四条技术路线边界,分析账本归属与时间语义差异,给出四种架构组合与判断点,帮企业看清为何不能互相替代。

trainsignalcn的专栏 326

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 369

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 247

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 151

48-逻辑结构表空间段区块

默认 10%,意思是块里的空闲空间低于 10% 时就不再插入新行,留着给已有行的 UPDATE 变胖用。注意 INSERT 过程中每次申请新区,都是一次潜在的空间报错点,如果表空间满了,此刻就会抛 ORA-01653。剩下的空间被谁占了?段的每个区可以落在表空间的任一数据文件,所以 2T 的表在 32G 单文件上限(smallfile)的世界里照样能活——多加文件就行。,一张只有两个 CLOB 字段的表,实际在库里是三个段(表段 + 两个 LOBSEGMENT),空间统计漏算 LOB 段是新手常犯的错。

yuhou25的博客 286
上一篇: kodojdo指南第六章
下一篇: kodojdo指南第八章
云哥
博客等级 码龄22年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值