- OpenPyXL教程学习笔记
小霍不吃豆角
python学习笔记python
OpenPyXL是一个功能强大的Python库,用于处理Excel文件,允许读取、编辑和创建Excel工作簿和工作表。以下是OpenPyXL的详细教程:一、安装OpenPyXL要使用OpenPyXL,首先需要安装它。可以使用pip进行安装:pipinstallopenpyxl二、打开或保存文件打开已有文件:importopenpyxlpath='文件路径'#例如“C://test.xlsx”wor
- 2024年Python常用模块 之 openpyxl模块——用于处理excel表格(1)
2401_84556480
程序员pythonexcel开发语言
行(row):1,2,3,4,5,6………一张工作表最多有65536行列(column):A,B,C,D………张工作表最多有256列单元格(cell):B1,C1一个简单使用助我们完成基操:============================================================================#!/usr/bin/envpython--coding:
- excel里面的数据怎样批量地处理,把数据竖排便成横排?
保卫大狮兄
excel
废话不多说,直接说步骤吧!先看效果:原本的数据:转置后的数据:步骤一:选择需要转置的数据选中你想要转置的数据区域。这些数据可以是单列、多列,甚至包含多个数据点的区域。例如,假设你有一列数据如下:产品苹果香蕉橙子葡萄西瓜你需要将这些产品名称从竖排(列)转为横排(行),那么你需要选中从A1到A5的这五个单元格——可以直接点击并拖动鼠标从A1单元格拖到A5单元格或者点击A1单元格后按住Shift键,然后
- 第2章-PostgreSQL 15安装及登录
我心中有一片海
#PostgreSQL数据库基础PostgreSQL数据库dba
第2章-PostgreSQL15安装及登录1、windows安装2、centos/redhat安装(在线安装)3、源码安装4、登录4.1本地登录4.2远程登录1、windows安装按照提示双击安装包一步一步操作即可2、centos/redhat安装(在线安装)#安装源sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/repo
- yum下载离线安装包
GaoJamie
linux服务器centos
目录前言方法一、使用yumdownloader命令方法二、使用--downloaddir参数离线包使用总结前言有时候,我们要去客户现场部署,因为客户都是生产内网,往往是无网环境,无法像公有云服务器一样在线安装软件,镜像需要将安装包离线下载打包好,到客户现场一键安装,本文介绍在使用yum安装时如何只下载不安装,或者说使用yum下载yum安装包。方法一、使用yumdownloader命令yumdown
- 鸿蒙开发在onPageShow中数据加载不完整的问题分析与解决
taopi2024
Harmonyharmonyos
APIVersion121、onPageShow()作什么的首先说明下几个前端接口的区别:ArkUI-X的aboutToAppear()接口是一个生命周期接口,用于在页面即将显示之前调用。在ArkUI-X中,aboutToAppear()接口是一个重要的生命周期接口,它会在页面即将显示之前被调用。这个接口通常用于在页面显示之前进行一些准备工作,比如加载数据、初始化状态等。通过在aboutToApp
- 【极简代码】Unity控制3D物体的自由旋转 缩放和移动
qq_39889893
Unity笔记unity3d游戏引擎
Unity中以最少代码,控制3D物体的自由旋转、缩放和移动。usingUnityEngine;publicclassTestMatrix:MonoBehaviour{floatscaleparam=0f;Vector3oldScale;privatevoidStart(){oldScale=transform.localScale;}privatevoidUpdate(){voidTrans_Ro
- 【LeetCode 刷题】回溯算法-棋盘问题
Bran_Liu
LeetCode算法leetcodepython
此博客为《代码随想录》二叉树章节的学习笔记,主要内容为回溯算法棋盘问题相关的题目解析。文章目录51.N皇后37.解数独332.重新安排行程51.N皇后题目链接classSolution:defsolveNQueens(self,n:int)->List[List[str]]:board=[['.'for_inrange(n)]for_inrange(n)]res=[]defcheck(x:int,
- Python零基础入门:从入门到实战的10个必学知识点
小尤笔记
python数据库服务器
Python零基础入门到实战,需要掌握一系列基础且关键的知识点。以下是10个必学的知识点及其代码演示:CSDN大礼包:《2024年最新全套学习资料包》免费分享1.变量与数据类型变量:用于存储数据,可以随时修改其存储的值。数据类型:Python有丰富的数据类型,包括整数(int)、浮点数(float)、字符串(str)、布尔型(bool)等。#变量赋值a=10#整数b=3.14#浮点数c="Hell
- Doris中架构和mysql语法的差异
苦苦挣扎的小码农
架构
Doris的架构只设FE,BE两种角色,两个进程,不依赖于外部组件,方便部署和运维,FE和BE都可线性扩展。FE(Frontend):存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:(1)Leader和Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。(2)Observer:用
- PyTorch数据建模
kaka_R-Py
大数据可视化pytorch人工智能python
回归分析importtorchimportnumpyasnpimportpandasaspdfromtorch.utils.dataimportDataLoader,TensorDatasetimporttimestrat=time.perf_counter()
- An impassioned circulation of affection ( Codeforces Round 418 (Div. 2) )
BoBoo文睡不醒
acm训练集合暴力枚举dp双指针
Animpassionedcirculationofaffection(CodeforcesRound418(Div.2))Nadeko’sbirthdayisapproaching!Asshedecoratedtheroomfortheparty,alonggarlandofDianthus-shapedpaperpieceswasplacedonaprominentpartofthewall.
- 博客2: JVM类加载机制详解
菜菜小趴菜
java架构师jvmjavac++
博客2:JVM类加载机制详解摘要:本文将深入探讨Java虚拟机(JVM)的类加载机制,包括类加载过程、类加载器类型和双亲委派模型等。JVM类加载机制是Java程序在运行时将字节码加载到内存的过程。理解类加载机制对于熟练使用Java语言及进行性能调优至关重要。本文将从以下几个方面来探讨JVM类加载机制:类加载过程类加载过程可以分为以下五个阶段:a、加载(Loading):加载阶段主要是通过类加载器将
- 悬浮按钮和可交互提示
巅峰小学生
MaterialDesignandroidMaterialDesign简体中文版
目录步骤导包布局文件中使用点击事件(和Button一样)步骤导包app.builddependencies{......implementation'com.android.support:design:28.0.0'}布局文件中使用说明:android:elevation=“8dp”设置高度值,高度值越大,投影范围越大,投影效果越淡;点击事件(和Button一样)mFloatBtn.setOnC
- 敲黑板!如果使用lighthouse 遇到NO_FCP错误可能是前端安全策略导致的!
测试开发Kevin
性能测试接口测试测试工具性能优化前端
lighthouseNO_FCP使用lighthouse进行前端性能测试时发现一个问题:Thepagedidnotpaintanycontent.Pleaseensureyoukeepthebrowserwindowintheforegroundduringtheloadandtryagain.(NO_FCP)页面截图如下:刚开始以为是自己的lighthouse出了问题,然后找一个其他网页进行性能
- Python 03-变量和数据类型
hitzsf
Python
文章目录1、Python变量2、数据类型2.1、基本类型:2.2、数据容器或者数据结构2.3、其他类型3、整数类型---classint3.1、进制转换的函数3.2、字面值表示4、小数类型---classfloat4.1、字面值表示4.2、相关的函数5、bool类型---classboolPython03-变量和数据类型1、Python变量变量就是数据的名称,变量可以指定不同的数据类型,这些变量可
- 微信小程序封装
←_→
微信小程序微信小程序小程序
消息反馈在开发过程中需要向用户反馈消息的场景有很多,如检验接口调用的结果,表单验证的提示消息等,为此我们来对APIwx.showToast进行简单的封装,方便开发中调用:1.1基础封装新建src/utils/utils.js文件,然后在这里完成具体的封装逻辑:/***工具方法*/constutils={/***封装wx.showToast*@param{string}title消息提示的内容*/t
- AI大模型爆火背后,C++ 如何助力 AI 开发大显身手?
羑悻的小杀马特.
c++开发语言
目录编辑一、本篇背景:二、C++语言的起源与发展历程:2.1起源背景:2.2发展阶段:三、C++的基础特性及优势:3.1高效性能:3.2底层控制能力:3.3面向对象编程:3.4模板编程:四、C++在不同领域的应用:4.1游戏开发:4.2操作系统开发:4.3嵌入式系统开发:4.4金融领域:五、C++的学习路径与资源推荐:5.1学习路径规划:5.2优质学习资源推荐:5.2.1·书籍:5.2.2·在线教
- 如何高效使用Excel的SUMIF函数:掌握条件求和的技巧
背景:在日常工作中,我们经常遇到这样的情况:需要根据特定条件对一系列数据进行求和。幸运的是,Excel提供了一个强大的工具来简化这一任务——SUMIF函数。本博客将带你深入了解如何使用SUMIF函数,包括一些实用的示例和高级技巧。SUMIF函数概述SUMIF函数是一个条件求和函数,它允许你在满足一个条件的情况下求和一列数字。它的基本语法如下:SUMIF(range,criteria,[sum_ra
- 继续分享实用工具的Python源码,欢迎二开
mosquito_lover1
信息可视化python开源
Excel数据处理工具一个功能强大的Excel数据处理工具,支持数据清洗、转换和分析等功能资源-CSDN文库邮件自动化工具一个功能强大的邮件自动化工具,支持批量发送邮件和自定义模板资源-CSDN文库网页爬虫工具一个功能强大的网页爬虫工具,支持自定义规则和批量数据提取资源-CSDN文库日志分析工具一个功能强大的日志分析工具,支持多种格式的日志文件分析和可视化资源-CSDN文库文件重命名工具一个功能强
- linux 安装python 3.10
处女座_三月
pythonlinux运维服务器
1下载对应的安装包下载地址:https://download.csdn.net/download/weixin_43401380/885196692上传服务器1步骤1:解压文件tar-xzfPython-3.10.13.tgz2步骤2:创建安装目录mkdirlocal3开始安装1安装gcc:你需要安装gcc,这是GNU编译器集合的一部分,用于编译C程序。执行以下命令来安装gcc:sudoaptup
- python修改nginx配置文件_一个修改nginx.conf配置文件的开源工具
潜水小透明
发现一个修改nginx.conf配置文件的python开源工具,挺好用的,分享一下:这个工具可以读取,修改以及删除nginx的配置项,然后重新生成配置文件。这其中保留了大部分原始配置文件格式,有一些会改变;所以不保证新生成的文件格式完全一致,还需要用肉眼比较一下哦。基本用法:frompynginxconfigimportNginxConfignc=NginxConfig()nc.loadf('/e
- 文本预处理时Resource punkt/stopwords/averaged_perceptron_tagger_eng/wordnet not found报错解决方式--亲测有效
無量空所
NLPnlp
报错如上图所示,此时在安装nltk包的情况下运行下方代码即可(缺哪个文件填哪个文件名)importnltkimportos#设置下载目录nltk.data.path.append('此处填写上述报错中给出的好几个红色目录中的一个')#下载stopwordsnltk.download('缺失文件名,这里填stopwords')
- 推荐开源项目:media-codec - 视频与音频编解码库
强妲佳Darlene
推荐开源项目:media-codec-视频与音频编解码库media-codecVideoandaudiodeconde/encodelibraries.项目地址:https://gitcode.com/gh_mirrors/me/media-codec1、项目介绍media-codec是一个强大的开源项目,专注于视频和音频的编解码库。它为开发者提供了一套完善的工具,帮助他们在各种平台上处理多媒体数
- Python+Django框架图书馆图书借阅管理系统网站设计与实现作品截图和开题报告参考
黄菊华老师
计算机系统成品图书馆图书借阅管理系统
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩,提供核心代码讲解,答辩指导。项目配有对应开发文档、开题报告、任务书、PPT等,提供毕业设计论文辅导。项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包
- 使用Linux,龙芯不算弱
rainandtear
嵌入式经验分享linuxwindowsmotorolasununix工作
在美国,这里实研室用167MHz的Sun工作站设计卫星。另外,在Austin的Motorloa工作的同学用300MHz的Sun工作站设计做,芯片仿真运算。我所在的实研室做的机器人用Linux和200Mhz的CPU。你以为美国人没钱买什么3Ghz的奔腾吗?很多科学运算领域没人用Windows,用Intel的也很少。主要是windows系统老死机。以前的Win98,每天差不多得死个三,四次。而这些科学
- nginx-1.24.0 安装教程
青春1314
服务器运维
1.下载nginx安装包mkdir-p/home/appcd/home/appwgethttp://nginx.org/download/nginx-1.24.0.tar.gz2.解压缩tar-zxfnginx-1.24.0.tar.gz3.下载nginx二进制包编译所需的工具和依赖yuminstallgcc-c++pcrepcre-develzlibzlib-developensslopenss
- Python-处理非结构化数据
cunzai1985
python大数据linux人工智能java
Python-处理非结构化数据(Python-ProcessingUnstructuredData)Thedatathatisalreadypresentinarowandcolumnformatorwhichcanbeeasilyconvertedtorowsandcolumnssothatlateritcanfitnicelyintoadatabaseisknownasstructuredda
- [利用Python加载和处理网址内容:从Unstructured到Selenium和Playwright]
bhawfgrcbtwny
pythonselenium开发语言
引言在现代网页数据分析中,加载和处理来自多种网址的内容是一个常见需求。无论是数据挖掘还是网页内容分析,我们常常需要从多个网页中提取HTML文档。本篇文章将介绍如何利用Python中的Unstructured、Selenium和Playwright库来加载这些网页内容,并将其转换为适合后续处理的文档格式。主要内容UnstructuredURLLoaderUnstructuredURLLoader可以
- ubuntu22.04安装k3s, kuboard
LogicLancer
docker持续集成
直接安装方式更新系统包列表sudoaptupdate安装所需的依赖sudoaptinstall-ycurl下载k3s安装脚本curl-sfLhttps://get.k3s.io|sh-验证k3s安装sudosystemctlstatusk3s获取k3s的tokensudocat/var/lib/rancher/k3s/server/node-token设置kubectl配置mkdir-p$HOME
- 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独立出来,数据持