kodojdo指南第五章

09.思科路由器:学会看路由表信息,show ip route详解 在思科(Cisco)系列路由器上,show ip route 这个命令是一个非常常用并且十分重要的命令。里面可以查看该设备的当前直连的或者学习到的全部路由信息,即路由表:routing table。 R2#show ip route ? WORD Network to display information about or hostname #显示有关或主机名的信息的网络 bgp Border Gateway Protocol (BGP) 阅读详情

第五章 JDO元数据

JDO要求每个持久类都必须有元数据.元数据有三个基本作用:
1)标识持久类
2)重载默认JDO行为
3)告诉JDO持久类的内省信息

  元数据是一个XML文档,下节会讨论它的DTD.无须强求自己立即明白DTD,下节我们会全面介绍它.

  JDO元素是元数据文档的根元素.它只有一个子元素.package.每个package元素都必须用包的全称来指定名字属性

  package元素包含一个或多个class元素.子元素后面可以有0个或者多个扩展元素.扩展元素的作用是用厂商指定的信息来解释元数据.扩展元素还可以包含扩展子元素.它有三个属性:
  厂商名称:扩展元素应用于哪个厂商.必须提供.
  关键字:你所设置的扩展属性的名称.每个厂商都会提供所支持属性的列表.
  值:属性的值
 
  每个在package元素里的持久类都必须有class元素,在详细解释它之前,先简单了解JDO如何解析类的名字
  一些元数据属性要求你指定类名.类名必须遵守以下准则:
  1)如果类所在的包就是当前包元素,那么只需给出类名.不用指定包名.例如,如果当前包名是org.mag,类名是org.mag.Magazine,那么类名只写Magazine
  2)否则,必须给出包括包的类名.
  3)如果类是内嵌类,必须写成父类$内嵌类的形式.如   SubscriptionForm$LineItem

  现在继续介绍class元素.这个元素有以下属性:
  name:类名,必需属性
  persistence-capable-superclass:如果父类也是持久化的,而你希望JDO能知道这个继承层次,那么你必须在这个属性里指定父类.如果父类是非持久化的,你不应该使用这个属性
  identity-type:给出类所使用的JDO标识.application表示使用应用程序标识, datastore 表示使用数据存储标识,none表示没有使用.如果指定了objectid-class属性,那么默认值为application.否则为datastore
  objectid-class:为应用程序标识而使用.属性值为JDO标识类的值.注意只需给出基类的值
  requires-extent:如果你不查询这个类的持久化实例,那么属性值为false.(例如,这个类的所有对象都可以通过JDO标识查找而得或通过其他对象的关系得到)默认为true


  class元素可以包含extension元素和field元素.field元素反映了能持久类声明的字段,这些元素是可选的.如果类声明的字段没有在field元素中给出,它的值由下面列出的属性来给出.感谢JDO善解人意的默认设置,许多字段不必显式的列出.field元素有以下属性:
  name:字段名.持久类声明的字段名称.必需.
  persistence-modifier: 指定JDO如何管理字段.这种做法是合理的,如果是持久化字段,则设为persistent,如果是事务性的就设为 non-persistent.和none.默认值由字段的类型来决定.
  1)声明为static,transient,final的为none
  2)任何基本类型和基本类型包装为persistent
  3)java.lang.String,java.lang.Number,java.math.BigDecimal,java.math.BigInteger, ava.util.Locale和java.util.Date default为persistent
  4)字段类型为自定义的能持久类为persistent
  5)上述类型的数组也为persistent
  6)java.util包里的集合类,如List,Map,Set,Collection,HashSet等都为persistent
  7)其他都为none
 
  primary-key: 如果类使用应用程序标识且该字段为主键字段,设为true,否则为false
  null-value:指定如果值为null时,将字段写到数据存储的操作.如果这个字段的值存储为null,则设none.如果想存储一个数据库的默认值,设为default,最后,如果该字段将要写入到数据存储时它的值为null,而你想抛出一个异常.那么这里你应该设为exception.默认为none
  default-fetch-group:默认取出组的字段作为组来管理.这样可以提高效率.例如从数据库中读取一批数据,把一批数据写入数据库.如果字段类型是基本类型,基本类型包装,字符串,日期,BigDecimal和BigInteger,则属性值为true.其他类型默认为false.(注意默认为false并不表示就是false)

  embedded:该属性提示JDO把该字段作为类实例的一部分存储到数据库.而不是作为单独的实体而保存.如果类型是基本类型,基本类型包装类,日期,BigDecimal和BigInteger,数组,集合和map类型,则默认值为true.其他类型默认为false.嵌入的对象不能在类的Extent出现,并且不能被查询取得.

  所有field元素应该包含extension子元素 , 字段如果是数组,集合或者map有可能再包含一个数组,集合或者map子元素.分别地,每个这样的子元素会分别包含额外的extension元素
  array元素只有一个属性.embedded-element,这个属性映射class元素的attribute属性,应用于每个数组索引.
  collection 元素也有.embedded-element 属性.还有element-type 属性.这个属性告诉JDO这个collection 含有什么.默认为包含object

  msp元素定义四个属性,他们是:
  1)key-type:map的key的类型.默认为object
  2)embedded-key:和集合的属性相似.应用于所有map key
  3)value-type:map的值的类型,默认为object
  4)embedded-value:和embedded-key类似,应用于所有map的value

  这里已经列出了元数据的文档结构.下面提供了一个完整的例子:


5.2. 元数据定位

org/mag/Magazine.jdo
org/mag/package.jdo
org/package.jdo
package.jdo


  在增强类和运行时都需要元数据。元数据文档必须作为资源供类装载器装载。必须放置在以下位置:
  1)取名为类名.jdo的资源文件。类名指的是元数据将要在其上起作用的类。这个资源文件必须和类放在同一个包下。 
  2)取名为包名.jdo。这个资源文件必须和相应的包一起存放,或者任何祖辈的包。包层次的文档必须含有包括所有可持久化类的元数据,除了那些有自己的类名.jdo的类。他们也可能在子包包含类的元数据。

  假设你使用标准的类装载器,有一个类Magazine定义在文件org/mag/Magazine.class 里,那么相应的元数据文档应该在下面任一文件加以定义:
  1)org/mag/Magazine.jdo
  2)org/mag/package.jdo
  3)org/package.jdo
  4)package.jdo

  由于元数据作为资源装载,所以JDO页可以从far文件中读取它。

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

相关推荐

全面了解JDO数据库编程

全面了解JDO数据库编程,包括官方文档,API等详细说明

第五章 不完全类型

第五章 不完全类型5.1 不完全声明        在定义一个分为多个部分的类型时,要使用一个新的类型修饰符——partial。为了保证和现有代码的兼容性,这个标识符和其他标识符不同:与get和set相同,它不是一个关键字,而且它必须直接出现在关键字class、struct和interface之一的前面。class-declaration:        attributesopt   class...

weixin_34205826的博客 176

保姆级教程:手把手教你下载和配置Waymo自动驾驶数据集(附百度网盘链接)

本文提供了一份详细的Waymo自动驾驶数据集下载和配置指南,特别针对国内研究者优化了数据获取方案,包括百度网盘链接和Google Cloud CLI配置。文章还涵盖了环境配置、数据处理实战、可视化分析以及进阶技巧,帮助开发者高效利用这一业界黄金标准数据集进行自动驾驶研究。

weixin_42651281的博客 363

使用show ip route查看某个指定网段的所有内容

  show ip route可以说是网络工程师最常用的命令之一,对于查看路由指向、诊断网络问题很有帮助。对于一个大型网络,常常有成百数千条路由,如何才能找到自己需要的路由条目是一件很头疼的事情。   为了解决这个办法,我们常用show ip route | include +网络前缀 的方法来找到匹配的条目。 10.0.0.0/24issubnetted,...

weixin_34205826的博客 3421

手把手教你用DCT/DCG实现Multi-bit FF物理优化(含SPG流程避坑指南)

本文详细解析了Multi-bit FF(MBFF)在芯片物理实现中的优化方法,重点介绍了DCT/DCG与SPG流程的实战应用。通过物理感知综合、寄存器组识别和增量优化三阶段流程,实现PPA(Power-Performance-Area)的协同提升。文章还提供了Innovus与ICC工具的协同优化策略及典型问题排查指南,帮助工程师高效完成MBFF物理优化。

ik67890123的博客 242

【unity】解决unity编译器安装中文汉化包失败

查看是否有Localization目录如果没有就进行创建,然后点击打开Localization把下载的zh-hans.po文件复制剪切进去即可。如果有的同学中文包安装失败,我们找到相应的编译器版本,点击在资源管理器中显示按钮,我们找到简体中文,复制downloadUrl后面的值到浏览器打开进行下载,点击Edtior language选择框,选择简体中文,等待加载。我们点击当前目录的上一级,进入编译器目录。返回在文件管理器中点击Editor目录。编译器启动后点击Edit[编辑]按钮。复制或者剪切下载的文件。

weixin_44959182的博客 8022

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

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

sun2bin的专栏 2694

VBA中如何使用Edge内核Browser?

在微软宣布停止对IE的支持后,许多使用VBA中Web Browser的用户遇到了困境,因为Web Browser使用的IE内核。然而微软并没有给出支持Edge的新版Web Browser,网上许多第三方的库也不够完善。经过调研,libEdge可以较好的和VBA集成,实现在Excel中打开Browser,甚至能够通过执行js代码,获取web页面的信息。项目需要WebView2Loader.dll和LibEdge.dll两个库,区分x86和x64版本。

金木AI 2398

Java数据对象技术JDO初步概览

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 557

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2138

深入剖析 Hive 中 CASE WHEN 与 IF 函数的性能差异:解锁高效数据处理的关键

CASE WHEN 函数堪称 Hive 中条件判断的多面手,它具备两种强大的语法形式,以应对各种复杂的业务逻辑。简单 CASE 表达式这种形式适用于对某一列的值进行直接的条件匹配。其语法如下:END例如,我们有一个记录学生成绩的表CASE scoreELSE 'D'搜索 CASE 表达式当业务逻辑需要更灵活的条件判断时,搜索 CASE 表达式便派上用场。它的语法为:CASEENDCASEELSE 'D'

2401_83088008的博客 1125

kodojdo指南(前两章)

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

WalkingWithJava 1537

智能硬件产品 App 全球发布 第 1 章:全球 App 发布战略设计

本章阐述智能硬件 App 全球发布战略,涵盖市场分析、竞争格局、用户画像及资源配置。通过制定可执行的全球化推广路径,整合地区法规合规、渠道分发策略与营销活动设计,助力团队快速进入主流商店并确立品牌影响力。同时构建可量化的 KPI 监控体系,指导项目进度追踪与效果复盘,确保产品迭代持续优化,降低运营总成本。

moton2017的博客 156

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

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

BADAO_LIUMANG_QIZHI的博客 198

LangChain从入门到精通最全教程

LangChain是一个用于构建基于大语言模型(LLM数据感知:连接外部数据源(文档、API等)智能代理:通过工具调用实现自主决策模块化设计:支持链式调用、记忆管理、提示词工程等from langchain . llms import BaseLLM class CustomLLM(BaseLLM) : def _call(self , prompt : str , ** kwargs) - > str : return f"自定义响应: {

Cachel Wood的博客 1410

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

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

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

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

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

m0_62221377的博客 456

Camera2Demo

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

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

市场调查与统计分析专业大学期间考证怎么安排?

市场调查与统计分析专业的考证规划,适合从一份完整的调查报告倒推:能不能设计问卷、判断样本是否合理、清洗数据,再把分析结果转化为业务建议?围绕这条能力链安排证书,比单纯按“热门程度”报名更有针对性。结合2026年的学习安排,并为2027年的实习、升学和求职预留时间,大学期间可以重点考虑六类证书:全国计算机等级考试证书、大学英语四级或六级成绩报告单、CDA数据分析师、初级统计专业技术资格证书、微软办公软件国际认证中的Excel相关证书,以及软考数据库系统工程师资格证书。

cc572502653的博客 158

Oracle 19c 在线重定义后旧表空间清理及 ASM 存储资源回收 SOP

Oracle 19c 在线重定义后旧表空间清理与 ASM 存储资源回收 SOP

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 486
上一篇: kodojdo指南第四章
下一篇: kodojdo指南第六章
云哥
博客等级 码龄22年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值