- vue项目做导入excel(通过base64)
最近项目的需求,记录下笔记要求:1..xls后缀名文件2.文件不超过10M3.转成base64传给后端导入excel//点击导入exceluploadFile(res){letfile=res.filethis.getBase64(file).then(baseFile=>{letdata=baseFile.split(';')[1]//base64的截取,根据后端要求截取的后半截的this.sa
- buuctf新生赛(ACTF2020)
HfLllo
linux运维服务器
1.Upload:文件上传,phtml2.BackupFile:codesearch找备份文件,弱类型比较==(只要求值相等)3.Exec:网站;ls(linux列出当前目录有哪些文件和目录)网站;ls/(看根目录里有什么内容)查看文件:web;cat/file4.Include:php://filter/read=convert.base64-encode/resource=file.php,再
- 将图片的base64编码直接嵌入到html文件的css中
Kuo-Teng
软件开发实战htmlcssjavascript
将图片的base64编码直接嵌入到html文件的css中1.背景2.将图片进行base64编码3.将图片的base64编码写入到css1.背景如果你需要在html中引入一张外部图片,你可能会这样做:如果你将引用的图片保存到本地,你可能会这样做:但是,如果网络延迟较高,或者在jar包中运行Java项目时无法根据路径顺利找到图片呢?那么,将图片的base64编码直接写入html文件便是最好的选择!2.
- html 照片环 - 图片的动态3D环绕
das白
#javascripthtml3djavascript照片环3D环绕
html照片环-图片的动态3D环绕引言一、源码二、图转base64参考链接引言效果展示:一、源码原始图片的base64编码字符太多了,博客放不下,将图片缩小后的加入html的源码如下:猫咪body{background-color:black;text-align:center;color:#FFF;}.jc{/*设置宽*/width:140px;/*设置高*/height:200px;/*设置背
- 将RESP.app的备份数据转码成AnotherRedisDesktopManager的格式
ziyue7575
redis软件
将RESP.app的备份数据转码成AnotherRedisDesktopManager的格式最近发现了AnotherRedisDesktopManager,这个软件可以直接展示proto数据。将RESP.app导出的json文件,转码为AnotherRedisDesktopManager的ano文件(是一个list转了base64)注意:AnotherRedisDesktopManager是没有分
- 2025年渗透测试面试题总结-2025年HW(护网面试) 16(题目+回答)
独行soc
2025年护网面试职场和发展web安全安全linux渗透测试护网
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录2025年HW(护网面试)161.渗透测试步骤2.信息收集方法3.常用扫描器优缺点4.Burp破解MD5/Base64加密密码5.常见HTTP方法及区别6.常见状态码含义7.请求头作用8.响应头作用9.Cookie的Secure和HttpOnly属性10.渗透常用编码11
- 前端ul-image的src接收base64快捷写法
peachSoda7
前端
前端ul-image的src接收base64快捷写法data:image/png;base64,你的base64数据注意如果是jpg就改成jpg,中间的逗号格式要注意,/注意不要反了假设后端返回的detail中的url已经是base64格式,下面是示例
- Python处理滑块缺口验证码以及字母数字验证码识别
该功能主要运用到的模块有:re、cv2、ddddocr、matplotlib等字母数字识别该识别可以直接下载第三方工具包ddddocr进行处理使用Python的包管理工具来安装ddddocr及其所需的依赖库pipinstallddddocr具体实现,分别处理保存在本地的图片已经base64格式的图片importddddocr#识别本地图片defalphanumericProcessing(img_
- harmony-utils之SM3,SM3工具类
harmonyosarkts
harmony-utils之SM3,SM3工具类harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之Base64Util,Base64工具类
arktsharmonyos
harmony-utils之Base64Util,Base64工具类harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期
- harmony-utils之SHA,SHA工具类
harmonyosarkts
harmony-utils之SHA,SHA工具类harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之SM4,SM4加解密
harmonyosarkts
harmony-utils之SM4,SM4加解密harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之MD5,MD5工具类
harmonyosarkts
harmony-utils之MD5,MD5工具类harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之RSA,RSA加解密
harmonyosarkts
harmony-utils之RSA,RSA加解密harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之DES,DES加解密
harmonyosarkts
harmony-utils之DES,DES加解密harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- harmony-utils之AES,AES加解密
harmonyosarkts
harmony-utils之AES,AES加解密harmony-utils简介与说明harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64
- http://syy7.com/a/25.php,vue_element/vue_elementui.sql at 3ffdcb477ce3fbbc24cf1a4d7e3481a187023a02 ·...
毛心宇
INSERTINTO`user_tb`VALUES('1','女','burtyang','C041580E1C6192B6084E03CE76D5C05C','18',null,'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAwICQoJBwwKCQoNDAwOER0TERAQESMZGxUdKiUsKyklKCguNEI4Lj
- [openssl]pem文件及openssl-rsa使用
_orangeP
CRYPTOopenssl安全加密解密
PEM全称是PrivacyEnhancedMail,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种对象保存成PEM格式,并将PEM格式的各种对象读取到相应的结构中。它的基本流程是这样的:信息转换为ASCII码或其它编码方式;使用对称算法加密转换了的邮件信息;使用BASE64对加密后的邮件信息进行编码;使用一些头定义对信息进行封装,这些头信息格式如下(不一定都需要,可选的):Proc-Ty
- 在Django中把Base64字符串保存为ImageField
里探
PythonDjango数据库django
在数据model中使用ImageField来管理avatar。classUser(models.Model):AVATAR_COLORS=(('#212736','Black'),('#2161FD','Blue'),('#36B37E','Green'),('#F5121D','Red'),('#FE802F','Orange'),('#9254DE','Purple'),('#EB2F96',
- iReport内嵌图片
sjmz30071360
Java点滴java
如题,内嵌图片到iReport内1。通过以下代码,将图片文件转化为Base64字串(也可以自己在通过网上的一些免费工具进行转化)========================================================================importjava.io.FileInputStream;importjava.io.FileOutputStream;imp
- HTTP Digest 认证:原理剖析与服务端实现详解
天氰色等烟雨
http网络协议网络
HTTPDigest认证:原理剖析与服务端实现详解HTTP协议中的Digest认证(摘要认证)是一种比Basic认证更安全的身份验证机制,其核心设计是避免密码明文传输,并通过动态随机数(Nonce)防范重放攻击。本文将结合标准协议流程与具体服务端代码实现,深入解析Digest认证的技术细节。一、Digest认证的核心原理与流程1.1为什么需要Digest认证?Basic认证直接通过Base64编码
- 【爬虫】TOR爬虫的设计与思考
iknow181
Python爬虫javascriptpython
案例目标aHR0cDovL2RyYWdvbmZvcnh4YnAzYXdjN216czVka3N3cnVhM3pucXl4NXJvZWZtaTRzbWpyc2RpMjJ4d3FkLm9uaW9uL3d3dy5jaXR5b2Zncm92ZW9rLmdvdg==base64解码站点难点与发现1.网站有token校验与刷新机制,每小时刷新一次token,之前的链接会失效。2.token是通过JavaScr
- 前言(做个提示大纲)
阿捏利
加解密与C哈希算法算法c语言
写了好多CTF的Reverse,突然冒出个想法,想写一个《加解密与C》的合集,总体思路就是用C去实现目前常见的加解密算法,包含国密。这篇文章主要是为了记录一个大纲。大致会分成如下系列来写,不一定全,后期会根据情况去补base系列base24、base32、base36、base64、base16、base85(a)、base85(b)、base58、base91、base92、base62、bas
- Spring Boot 和 Spring Security 实现 JWT 认证
weixin_43833540
springspringboot网络
一、JWT(JSONWebToken)1.JWT基本概念JWT是一种开放标准(RFC7519),用于在网络应用间安全传递JSON格式的声明信息。其核心特点包括:紧凑性:通过Base64URL编码生成字符串,可通过URL、HTTPHeader或POST参数传输。自包含:负载(Payload)直接携带用户信息(如ID、角色),减少服务端查询数据库的开销。数字签名:使用密钥(HMAC)或公钥/私钥(RS
- 【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】
CaraYQ
前端前端javascript
目录前端文件操作与文件上传前端接受后端传输文件指南前端excel、word操作指南excelword前端文件操作与文件上传一、前端文件上传有两种思路:二进制blob传输:典型案例是formData传输,相当于用formData搭载二进制的blob传给后端base64传输:转为base64传输,后端再将base64转回来。简便、耗时二、与文件相关的对象files:通过input标签读过来的文件对象,
- Flutter: 把本地相册图片转换成Base64的方法
花花_1
flutterandroid
前言在Flutter开发中,关于图片上传和展示也是常用必用的操作,尤其是在设置APP用户的头像信息,以及上传背景图的操作。关于Flutter开发中图片的上传和展示也是比较常用的操作,也有对应的组件和插件,但是关于一些引申的需求操作,常规的操作是满足不了需要的,那么本文就来分享一下在实际业务需求中常用的需求:把从相册选中的图片转换成Base64之后再显示,或者展示获取到的Base64的图片。那么本文
- vue图片转base64
时无诳语Imp
vue.jsjavascript前端
//转换成base64方法getBase64(file){returnnewPromise(function(resolve,reject){constreader=newFileReader();letimgResult='';reader.readAsDataURL(file);reader.onload=function(){imgResult=reader.result;};reader.
- uniapp 手写签名组件
真是个小淘气鬼
uni-app前端前端框架
组件地址:手写签名组件,弹框签名,可配置签名,签名返回base64,签名专用-DCloud插件市场#欢迎使用手写签名组件**手写签名组件,签名后可以获取到base64编码,同时内置了弹框签名组件,对于不想布局的同学来说可以开箱即用」**有项目需要开发的请联系QQ:371524845开发不易,如果帮助到你的,请支持有问题请留言,作者会积极更新#使用方法#####该组件内置两种组件signature和
- 深入解析XXE漏洞利用:Base64编码的PHP过滤器+回调回传攻击
Bruce_xiaowei
笔记总结经验php开发语言网络安全CTFXXE
深入解析XXE漏洞利用:Base64编码的PHP过滤器+回调回传攻击在网络安全和CTF实战中,XXE(XMLExternalEntity)漏洞因其独特的攻击方式和广泛的应用环境,成为Web安全学习的重要一环。今天,我们以一个高级且实用的XXE利用Payload为例,详细拆解其构造和原理,帮助你快速理解XXE远程文件读取的攻防关键。一、什么是XXE漏洞?XXE(XML外部实体注入)是指在XML解析过
- [每周一更]-(第147期):使用 Go 语言实现 JSON Web Token (JWT)
ifanatic
每周一更Gogolangjson前端
什么是JSONWebToken?JSONWebToken(JWT)是一种开放标准(RFC7519),用于在网络应用之间传递信息。它是一个紧凑且自包含的令牌,通常用于身份验证和授权。JWT由三部分组成:Header(头部)、Payload(负载)和Signature(签名),通过点号(.)连接,编码为Base64格式,形成如下的结构:Header.Payload.SignatureHeader:包含
- 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独立出来,数据持