- WEB3合约开发以太坊中货币单位科普
穗余
Web3web3
1wei是以太坊中最小的货币单位,就像人民币里的“分”甚至“厘”。✅以太坊单位换算关系:单位数值(与1ether的换算)说明ether1ether=10¹⁸wei主单位(用于显示)gwei1gwei=10⁹wei常用于gasprice设置wei1wei最小单位(基础单位)举个例子:1ether=1,000,000,000,000,000,000wei(10的18次方)0.000000001ethe
- RPC与HTTP API对比
漫谈网络
NetDevOps智联空间rpchttp网络协议
一、核心流程对比环节RPCHTTPAPI调用方式调用远程函数/方法(如userService.getUser(123))调用远程端点(如GET/users/123)参数传递通过序列化直接传递编程语言对象通过URL参数、Header或Body传递结构化数据网络传输通常基于TCP/UDP+二进制协议(如gRPC的HTTP/2)基于HTTP/HTTPS文本协议数据封装由框架自动处理序列化/反序列化需手动
- flowable 修改历史变量
小云小白
springbootflowable修改历史变量springboot
简洁场景:对已结束流程的变量进行改动方法包含2个类1)核心方法,flowablecommand类:HistoricVariablesUpdateCmd2)执行command类:BpmProcessCommandService然后springboot执行方法即可:bpmProcessCommandService.executeUpdateHistoricVariables(processInstan
- Linux 设备树详解:从概念到实战
Jay_515
Linux学习嵌入式linux设备树
关键词:设备树(DeviceTree)、DTS、DTC、DTB、嵌入式Linux驱动开发为什么需要设备树?在旧版Linux内核中,硬件信息(如内存映射、外设地址、中断号等)直接硬编码在内核源码中。这导致:内核臃肿,需为不同硬件编译不同版本硬件变动需重新编译内核代码冗余严重(一个board-*.c文件对应一块开发板)设备树(DeviceTree)的引入彻底解决了这一问题!它通过描述硬件拓扑结构的文本
- Springboot --- 整合spring-data-jpa和spring-data-elasticsearch
百世经纶『一页書』
SpringbootJavaspringboot
Springboot---整合spring-data-jpa和spring-data-elasticsearch1.依赖2.配置文件3.代码部分3.1Entity3.2Repository3.3Config3.4Service3.5启动类3.6Test3.7项目结构SpringBoot:整合Ldap.SpringBoot:整合SpringDataJPA.SpringBoot:整合Elasticse
- 中国计算机学会推荐国际学术会议-体系结构相关(含投稿截至时间)
HiAallen
事务编辑器
Ref:CCF推荐国际学术刊物目录-中国计算机学会中国计算机学会推荐国际学术会议(●计算机体系结构/并行与分布计算/存储系统)A类序号刊物名称刊物全称出版社投稿截止时间地址1PPoPPACMSIGPLANSymposiumonPrinciples&PracticeofParallelProgrammingACM2022-8-17dblp:PPOPP2FASTConferenceonFileandS
- 中国计算机学会(CCF)推荐学术会议-C(软件工程/系统软件/程序设计语言):FPT 2025
爱思德学术
AI编程极限编程重构
FPT2025FPTisthepremierconferenceintheAsia-Pacificregiononfield-programmabletechnologies,reconfigurablecomputingdevicesandsystems.Field-programmabledevicesoffertheflexibilityofsoftwarewiththeperformanc
- Docker基础实战教程一:入门
Ssaty.
docker容器运维
第1关:HelloDocker!本关任务是初识Docker,要求学习者参照示例完成拉取镜像、启动容器并在容器内输出HelloDocker的功能。#注意如果想在右侧使用命令行模拟操作,请先输入#servicedockerstart#否则将不能执行docker命令#拉取busybox官方镜像,启动容器并执行输出"HelloDocker"#拉取busybox官方最新镜像dockerpullbusybox
- 工作台-02.代码开发
天上掉下来个程小白
苍穹外卖数据库springboot苍穹外卖Java工作台
一.Controller层packagecom.sky.controller.admin;importcom.sky.result.Result;importcom.sky.service.WorkSpaceService;importcom.sky.vo.BusinessDataVO;importcom.sky.vo.DishOverViewVO;importcom.sky.vo.OrderOv
- 实例化Bean对象的三种方式
越来越无动于衷
javasql开发语言
默认是无参数的构造方法(默认方式,基本上使用)静态工厂实例化特点:工厂方法属于静态方法,可直接通过类名调用,无需先创建工厂类的对象。优势:调用起来更为简便,性能方面也稍占优势。Spring配置:class属性指向静态工厂类,factory-method属性指向静态方法。示例代码:publicclassStaticFactory{publicstaticUserServicecreateUs(){r
- gRPC技术解析与python示例
漫谈网络
NetDevOps智联空间python开发语言rpcgrpc
一、gRPC核心架构1.多语言存根2.HTTP/2传输3.多语言实现生成生成客户端gRPC客户端库gRPC服务端库服务端业务逻辑ProtobufIDL二、成为「多语言RPC标准」的5大支柱1.语言无关的接口定义使用Protobuf作为接口定义语言(IDL)://服务定义(hello.proto)syntax="proto3";serviceGreeter{rpcSayHello(HelloRequ
- Excel处理控件Aspose.Cells教程:Java 在 Excel 中插入和删除行和列
Aspose.Cells是Excel电子表格编程API,可加快电子表格的管理和处理任务,支持构建能够生成,修改,转换,呈现和打印电子表格的跨平台应用程序。同时不依赖于MicrosoftExcel或任何MicrosoftOfficeInterop组件,AsposeAPI支持旗下产品覆盖文档、图表、PDF、条码、OCR、CAD、HTML、电子邮件等各个文档管理领域,为全球.NET、Java、C++等1
- Servlet继承结构及生命周期
32224047_yw
ServletservletjavaServlet生命周期
1.Servlet继承结构Servlet——接口↑继承GenericServlet——抽象类↑继承HttpServlet——抽象类:推荐使用Servlet接口:定义了Servlet的基本功能|-GenericServlet:实现了Servlet接口,并且实现了Servlet接口中的大部分方法,但是没有实现Service方法,需要子类去实现|-HttpServlet:继承了GenericServle
- ServletConfig && ServletContext
Code溪
java前端服务器
一.ServletConfig1.Servlet1代码@WebServlet(urlPatterns="servlet1",initParams={@WebInitParam(name="keya",value="valueA")})publicclassServlet1extendsHttpServlet{@Overrideprotectedvoidservice(HttpServletRequ
- 九、buildroot系统 usb配置
3.3、usb配置源码中kernel默认已经打开了相关的usb配置,只需要在buildroot中打开相关配置。1、基本功能类别简称功能描述ADB(AndroidDebugBridge)ADB是一种功能多样的命令行调试工具,可以实现文件传输,UnixShell登录等功能。UAC(USBAudioClass)UAC通过USB虚拟标准PCM接口给Host设备,实现Device和Host之间音频互传功能。
- php代码混淆加密
阿杰_114
系统安全phpphp加解密
最近由于对产品做交付,对产品做了License授权,有吧产品分装在kvm里面,但是感觉还是不太安全,于是想到对源码进行加密处理,目前市场上用的比较多的大致如下,本文使用了PHPScrewplus文章开头使用别人写好的一些方案,就是就是流行的加解密产品参考如下#方案类型是否免费优劣势分析1ZendGuard基于加解密客户端收费PHP官方出品,是目前成熟的加密方案,不支持PHP7。ZendGuard用
- Android 16系统源码_无障碍辅助(二)Android 的无障碍框架
AFinalStone
Framework12源码android
前言上一篇文章我们通过一个简单案例,初步认识了无障碍服务,本篇文章我们将会结合具体的系统源码来对无障碍服务进行一下深入分析。组件介绍核心组件Android无障碍框架(AccessibilityFramework)的源码位于AOSP(AndroidOpenSourceProject)中的frameworks/base/core/java/android/accessibilityservice/仓库
- 蔡高厅老师 - 高等数学-阅读笔记 - 01 - 前言、函数【视频第01、02、03、】
Franklin
数学线性代数
高等数学前言;196学时,每周6课主要内容:上册一元、多元函数数,微分学、积分学、矢量代数、空间解析几何无穷级数、微分方程,多元函数微分学和积分学目的:高等数学3基:1高等数学的基本知识2高度数学的基本理论3高等数学的基本计算方法提高数学素养培养:抽象思维、逻辑推理、辩证的思想方法、空间想象能力、分析问题、解决问题的能力为进一步学习打下必要的学习基础和初等数学不同,研究的不是常量而是变量,变量和变
- 蓝色教育培训通用PPT模板
puerppt
平面
模板介绍本套蓝色教育培训通用PPT模板,模板编号:P22236,大小10MB,共27页,比例为16:9,由封面、目录、转场页、内容、结尾5个部分构成。内含青色,蓝色,灰色多种配色,精美其他风格设计,动态播放效果,精美实用。一份设计精美的PPT模板,可以让你在汇报演讲时脱颖而出。PPT模板都是源文件,文字、图片都可以编辑,内容、页面根据自己的需要增加删除。模板下载后请安装并使用Office或WPS软
- GDPU移动应用开发(安卓)期末考试复习资料
第一部分一、选择题应用的基本构建块是:A.ActivityB.FragmentC.ServiceD.Intent答案:A.Activity下列哪个不是AndroidManifest.xml文件的主要用途?A.声明应用权限B.声明应用组件C.定义应用的图标和名称D.编写应用的业务逻辑答案:D.编写应用的业务逻辑在Android中、用于存储持久化数据的SQLite数据库、默认存储在哪个目录下?A./s
- 思科ISE/ISE-PIC安全警报:两处高危RCE漏洞(CVSS 10.0)可致未授权获取root权限
FreeBuf-
安全网络web安全
思科已发布更新,修复身份服务引擎(IdentityServicesEngine,ISE)及ISE被动身份连接器(ISE-PIC)中两处最高危安全漏洞,这些漏洞可能允许未经认证的攻击者以root用户身份执行任意命令。漏洞详情这两处漏洞编号分别为CVE-2025-20281和CVE-2025-20282,CVSS评分均为10.0分:CVE-2025-20281:影响思科ISE及ISE-PIC3.3及以
- Dockers Compose常用指令介绍
小黑屋说YYDS
dockerdocker容器linux
DockersCompose常用指令1、常用指令介绍1.1、version指令顶级一级指令,指定compose指定文件格式版本version:"3.8"services:不同版本支持的功能不同。常用版本有‘2’,‘3’,‘3.8’等。1.2、services指令顶级一级指令,定义应用程序的各个服务(容器),每个服务对应一个容器。version:"3.8"services:容器1:各种配置项....
- ONLYOFFICE文档:为企业和开发者带来强大的文档编辑功能
dvlinker
开源项目ONLYOFFICE文档编辑多人协作
本文给大家介绍一个开源项目:ONLYOFFICE文档,它能够为文档编辑、多人协作提供强大支持。无论你是个人使用,还是企业、商业开发,都能找到适合你的版本。关于ONLYOFFICE文档ONLYOFFICE文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF,可多人在线协作,支持AI集成。多平台兼容ONLYOFFICE文档适用于Windows、Linux、An
- VUE3入门很简单(2)--- 计算属性
有诺千金
Vue3vue.js前端javascript
前言重要提示:文章只适合初学者,不适合专家!!!为什么需要计算属性?想象你在开发一个购物车功能。当用户选择商品时,你需要:计算商品总价根据折扣码调整价格自动更新免运费状态显示税费金额你会怎么做?在模板中写表达式?总价:¥{{(items.reduce((sum,item)=>sum+item.price*item.quantity,0)*(1-discountRate))}}sum+item.pr
- docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]].
这个错误表明Docker无法识别或加载支持GPU所需的设备驱动程序。以下是完整的解决方案和根本原因分析,结合最新技术和实践整理:根本原因分析缺少NVIDIAContainerToolkit现代Docker依赖NVIDIAContainerToolkit(前身为nvidia-docker2)实现GPU透传,未安装时无法调用GPU驱动。Docker配置未启用NVIDIA运行时需在daemon.json
- Java SPI机制
探索java
#死磕java基础java
引言在现代软件开发中,构建灵活、可扩展的应用程序是开发者的核心目标之一。Java的SPI(ServiceProviderInterface,服务提供者接口)机制为实现这一目标提供了强大的支持。SPI是一种服务发现机制,允许在运行时动态加载服务的实现,从而实现接口与实现的解耦,遵循面向对象设计的开闭原则(对扩展开放,对修改封闭)。通过SPI,框架开发者可以定义标准接口,第三方开发者提供具体实现,而无
- C语言大作业——学生信息管理系统
yeye_queenmoon
c语言开发语言
前言零基础小白第一次写项目,耗时两天,bug不断,浅浅记录一下项目介绍github依照作业要求分三层(1)Viewlayer(main.c):receiveuserinputs,displaydataandinteractwithusers.(2)Logiclayer(stu_service.c):processrelativebusinesslogics.(3)Dataaccesslayer(s
- Flutter私活开发中的10个高频实用代码片段
以下精选Flutter私活开发中的10个高频实用代码片段,附带详细注释和优化技巧,助您快速提升开发效率:1.支付模块集成(支付宝+微信)//支付服务封装-lib/services/payment_service.dartimport'package:alipay_kit/alipay_kit.dart';import'package:fluwx/fluwx.dart'asfluwx;classPa
- ManageEngine卓豪简化变更管理的工作方法(六)
运维
有效的变更管理需要的不仅仅是计划和实施,还需要持续的监控,这样才能了解您的战略是如何实施下来的。报表和仪表盘可以帮助您发现趋势,做出数据驱动的决策,并确保您的变更流程与组织的更广泛目标保持一致。在本章中,我们将探讨ManageEngine卓豪ServiceDeskPlus如何将关键数据整合到一个易于访问的界面中,从而帮助您监控、衡量和模拟变更的成功。a.通过详细报表将原始数据转化为可操作的见解开箱
- MiniWord .NET Word模板引擎 - 跨平台文件生成解决方案
来自日本的亮仔
本文还有配套的精品资源,点击获取简介:MiniWord.NETWord模板引擎是一款专为.NET开发者设计的高效文件生成工具,使程序员能够利用Word模板和数据快速创建文档。该引擎不依赖于OfficeCOM+组件,因此支持包括Linux和Mac在内的多种操作系统。MiniWord提供了一个直观的模板设计过程,允许用户通过Word界面定义静态内容和动态数据占位符,从而简化了批量生成报告和合同的工作。
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持