- SQLServer 查看备份进度
Foliole
SQLServer经验总结sqlserver备份
SELECTDB_NAME(er.[database_id])[DatabaseName],er.[command]AS[CommandType],er.[percent_complete],er.start_time,CONVERT(DECIMAL(5,2),er.[percent_complete])AS[Complete_Percent],CONVERT(DECIMAL(38,2),er.[
- Python爬虫:爬取招聘网站系列 - 前程无忧(1)
m0_60607971
python爬虫开发语言
本次以前程无忧为例,看看Python的工资如何。这是今天的重点1、爬虫的基本流程2、re正则表达式模块的简单使用3、requests模块的使用4、保存csv使用的软件python3.8pycharm2021专业版pycharm社区版(免费)没有主题专业版(需要激活码)使用的模块requests>>>pipinstallrequests(数据请求模块)第三方模块rejsoncsvtime爬虫最基本的
- 初始爬虫10
菜鸡中的奋斗鸡→挣扎鸡
爬虫
1.selenium执行js因为selenium缺少下拉页面的操作,需要js触发式请求:driver.execute_scripts(js)#-*-coding:utf-8-*-fromseleniumimportwebdriverimporttimefromselenium.webdriver.common.byimportByurl='https://jn.lianjia.com/'drive
- 深入浅出:JIT优化技术如何让Java运行更快
qian_qh
面试八股文java开发语言jvm
深入浅出:JIT优化技术如何让Java运行更快?1.什么是JIT?JIT(Just-In-TimeCompilation,即时编译)是Java虚拟机(JVM)的核心优化技术之一。它的核心思想是:在运行时将热点代码(频繁执行的代码)从字节码编译成本地机器码,从而大幅提升执行效率。为什么需要JIT?Java程序默认是解释执行的,即JVM逐条读取字节码并解释成机器指令运行。这种方式虽然跨平台,但执行速度
- 从对象数组中筛选符合条件的值
爱编译也爱吃肉的喵
js学习笔记
遍历当前数组中的键拿到另一个数组中包含相同键的当前数组对象constarr=[1,2,3,4,5,6,7]constlist=[{openId:1,timelineId:1,showNo:1,uid:1},{openId:2,timelineId:1,showNo:1,uid:1},{openId:9,timelineId:1,showNo:1,uid:1},{openId:4,timelineI
- Vue中常见问题汇总及解决方案(一)
小刘哥007
Vue实战vue.js前端javascript
目录安装超时(installtimeout)安装一些需要编译的包:提示没有安装python、build失败等can’tnotfind‘xxModule’-找不到某些依赖或者模块datafunctionsshouldreturnanobject我给组件内的原生控件添加事件,怎么不生效了!!!我用了axios,为什么IE浏览器不识别(IE9+)我在函数内用了this.xxx=,为什么抛出Cannots
- 单表达式倒计时工具:datetime的极度优雅(智普清言)
梦幻精灵_cq
练习生活python
一个简单表达式,也可以优雅自成工具。 笔记模板由python脚本于2025-03-2220:25:49创建,本篇笔记适合任意喜欢学习的coder翻阅。【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。Python官网: 这里,才python前沿。英文原版,原汁原味,才是寻根溯源的正统。地址:https://www.python.org/Free: 大
- JavaScript定时器
旺代
javascriptudp开发语言
目录JavaScript定时器详解一、定时器基础1.setTimeout:单次延迟执行2.setInterval:周期性执行3.清除定时器二、定时器底层机制1.事件循环(EventLoop)2.最小延迟限制三、定时器使用场景1.延迟执行2.轮询数据3.防抖(Debounce)与节流(Throttle)4.动画(优先使用requestAnimationFrame)JavaScriptsetInter
- MySQL与Time Series 数据:优化物联网数据分析
墨瑾轩
一起学学数据库【一】mysql物联网数据分析
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣引言:物联网与时间序列数据的邂逅嗨,亲爱的小伙伴们!欢迎来到这个充满智慧和趣味的数字世界。今天,我们要一起探索的,是物联网(IoT)与时间序列数据在MySQL中的奇妙旅程。这不仅仅是一场技术的盛宴,更是一次对数据世界的深度探险。物联网:智能世界的构建者物联网,
- FPGA移位操作实现LED流水灯
@星痕
FPGA学习fpga开发学习笔记
前言FPGA中使用Vivado工具实现LED流水灯一、实验目的实现一个0.5秒闪烁移动的LED流水灯。二、具体实现1.流水灯模块代码如下(示例):`timescale1ns/1psmoduleled_run(Clk,Reset_n,Led);inputClk;inputReset_n;outputreg[7:0]Led;reg[24:0]counter;always@(posedgeClkorne
- 微信小程序的WXS语法的日常小用处
秋水君y
小程序
tips:一般在小程序中处理图片替换时间转换都是可以用到,我大多用来格式化一些数据参考官方说明:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/简略写法示例:1.//这里算是引入,定义名称之类的2.{{filter.localData(item.endtime)}}//这边是用法,格式化时间的意思,具体怎么格式
- GaussDB安装详细步骤分享
如清风一般
gaussdb
GaussDB是华为推出的一款高性能分布式数据库,支持多种部署方式。本文将指导您在本地电脑上安装GaussDB数据库,并提供详细的步骤和代码示例。安装前的准备工作在开始安装之前,请确保您的电脑满足以下要求:操作系统:支持Linux(如CentOS、Ubuntu)或Windows。硬件要求:至少4GB内存。至少20GB磁盘空间。依赖环境:JavaRuntimeEnvironment(JRE)或Jav
- Vue响应式数据更新:深入理解$set的应用
hi星尘
vuevue.js前端javascript
一、问题背景:为什么我的class绑定不生效?在Vue开发中,我们经常遇到这样的场景:数据已经更新了,但视图却没有相应地变化。这正是作者在开发中遇到的问题——:class="{active:item.ins==0}"的绑定没有按照预期工作。问题代码回顾:日月原始实现:changeType(type,time,index){this.list[index].ins=type;//直接修改属性}二、V
- 牛客2025年愚人节比赛
今天_也很困
算法c++
B.A+B_Problem题目描述老师似乎觉得这题没啥挑战性,他想给大家来点刺激的。给定正整数a,b,求a+b的值。输入描述:两个正整数 a,b(1≦a,b≦9.1×1018)a,b(1\leqqa,b\leqq{\tiny9.}1\times10^{18})a,b(1≦a,b≦9.1×1018)输出描述:一个正整数,表示结果示例1输入复制224输出复制6示例2输入复制114514输出复制628思
- C++基础知识--从宏定义变量名看相关展开顺序
沐怡旸
c++基础知识
TIME_STAT_1和TIME_STAT_2两个宏的目的是想定义一个不重复的变量名(根据行号),但是只有TIME_STAT_1能够达到目的以下是TIME_STAT_1和TIME_STAT_2两种宏展开的详细流程解析,配合图示说明关键差异:1.宏定义说明#defineCONCAT(x,y)x##y#defineTIME_STAT_LOGIC_1(node,num)TimeRecorderCONCA
- 卷积层里的填充和步幅
恋恋不忘,必有回响
动手学习深度学习深度学习人工智能
填充和步幅填充给定(32x32)输入图像应用5x5大小的卷积核第1层得到输出大小28x28第7层得到输出大小4x4更大的卷积核可以更快地减小输出大小形状从nh×nwn_h\timesn_wnh×nw减少到(nh−kh+1)×(nw−kw+1)(n_h-k_h+1)\times(n_w-k_w+1)(nh−kh+1)×(nw−kw+1)填充是在输入周围添加额外的行/列填充php_hph行和pwp_w
- JVM 每个区域分别存储什么数据?
冰糖心书房
JVMjvmjava
JVM(JavaVirtualMachine)的运行时数据区(RuntimeDataAreas)被划分为几个不同的区域,每个区域都有其特定的用途和存储的数据类型。以下是JVM各个区域存储数据的详细说明:1.程序计数器(ProgramCounterRegister)存储内容:当前线程正在执行的Java方法的字节码指令的地址(行号)。如果当前线程正在执行的是Native方法,程序计数器的值为undef
- c语言实现数字简谱作曲程序代码
EYYLTV
c语言开发语言
#include#include#include#definebase440.0//基准音A4#definemax15//最多可以生成的音符数intmain(void){srand((unsignedint)time(NULL));//初始化随机数种子intnotes[max]={0};//存储随机生成的音符数组intduration[max]={0};//存储随机生成的音符时长数组for(int
- 磁盘读速度巨慢使用arcconf工具调整后的二次优化
工具人01
Linuxlinuxlvm
情况叙述:lvm文件系统出现损坏,格式为xfs,磁盘修复失败后该节点需要重新格式化处理,格式化后重新划分pv,vg,lv,做完之后应用反应读写的速度达不到应用使用的要求,与正常的相比速度不稳定现象:time和dd测试速度后发现写的速度为10-20MB/s解决1:yy3:~#chmod+xarcconfyy3:~#./arcconfgetconfig1ad|grep-icacheCachePrope
- 爬取豆丁网图片
老年星际玩家
python
#-*-coding:utf-8-*-importurllib.requestimporturllibimporttime"""参数url:下载链接地址参数filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)参数reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。参数
- Three.js 数学工具:构建精确3D世界的基石
布兰妮甜
Three.js进阶之旅three.jsjavascript3d数学工具
文章目录前言一、向量(Vectors)二、矩阵(Matrices)三、四元数(Quaternions)四、欧拉角(EulerAngles)五、颜色(Colors)六、几何体生成器(GeometryGenerators)七、随机数生成(RandomNumberGeneration)八、时间和动画(TimeandAnimation)九、光线追踪与碰撞检测(RayTracingandCollisionD
- 【Django】教程-5-ModelForm增删改查+规则校验【正则+钩子函数】
唐古乌梁海
Djangodjango
【Django】教程-1-安装+创建项目+目录结构介绍【Django】教程-2-前端-目录结构介绍【Django】教程-3-数据库相关介绍【Django】教程-4-一个增删改查的Demo11.ModelForm11.1models.pyfromdjango.utilsimporttimezonefromdjango.dbimportmodels#数据库,表对应关系classDepartment(m
- python网页提交表单_python模拟实现自动填写网页表单源码
weixin_39637233
python网页提交表单
#python模拟实现自动填写网页表单源码运行:Python3+第三方包#coding:utf-8importtime,sysimportpyautogui,pyperclipimportpandasaspd#保护措施,避免失控pyautogui.FAILSAFE=False#为所有的PyAutoGUI函数增加延迟。默认延迟时间是0.1秒。pyautogui.PAUSE=0.6#1366X768I
- 定时任务(python)
三金C_C
Pythonpython定时asyncio
介绍什么是“定时任务”?定时任务,就是按照设定的时间间隔或时间点自动执行某些操作。比如:•每天早上8点发通知•每隔10秒采集一次数据•每小时清理一次缓存相关使用✅最简单的方式:whileTrue+time.sleep()importtimedefjob():print("执行任务")whileTrue:job()time.sleep(10)#每10秒执行一次✅优点:•写法简单,不需要任何依赖•控制
- python技巧:自动控制高低温箱,通过串口输入命令,生成16进制字符串,并计算CRC16。
Ankie(资深技术项目经理)
学习Pythonpython开发语言CRC16串口操作
最近有个临时紧急的需求,要每隔5摄氏度测试高低温,因此必须使用脚本实现自动控制温箱。温箱厂商提供了一个控制APP,是通过串口发命令控制温度,但是我们需要cmd实现自动化。因此,我们通过串口监控抓取了设置温度的字符串,参考了温箱设计文档。在AI的帮助下,快速实现了这个控制脚本。具体实现如下:这组命令是一串16进制数+CRC16校验。importserialimporttimeimportcrcmod
- 【区块链安全 | 第二十三篇】单位和全局可用变量(一)
秋说
区块链安全区块链安全
文章目录单位和全局可用变量(UnitsandGloballyAvailableVariables)以太单位(EtherUnits)时间单位(TimeUnits)保留关键字单位和全局可用变量(UnitsandGloballyAvailableVariables)以太单位(EtherUnits)在Solidity中,数字字面量可以使用wei、gwei或ether作为后缀,指定以太的子单位。如果数字没有
- Netty源码—10.Netty工具之时间轮
牛马程序员2025
.netunity网络hadoop
Netty源码—10.Netty工具之时间轮大纲1.什么是时间轮2.HashedWheelTimer是什么3.HashedWheelTimer的使用4.HashedWheelTimer的运行流程5.HashedWheelTimer的核心字段6.HashedWheelTimer的构造方法7.HashedWheelTimer添加任务和执行任务8.HashedWheelTimer的完整源码9.Hashe
- Qt 练习
yayyy4
qtui开发语言
制作小闹钟widget.cpp文件#include"widget.h"#include"ui_widget.h"#include#include#includeWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);//给定时器事件指针实例化t1=newQTimer(this);t2=ne
- [ES]--入门笔记--ES中的核心概念
就是为了年薪百万
ESelasticsearches核心概念
1、NearReatime(NRT)近实时,从写入数据到可以被搜索到会有一些延时,大概1秒左右,基于es执行搜索和分析可以达到秒级2、Cluster集群,包含多个节点,每个节点属于哪个集群是通过配置集群名称决定的,默认集群名称是elasticsearch3、Node节点,集群中的每个节点都有一个名称,名称默认是随机分配的。默认节点会加入“elasticsearch”集群。4、Document文档,
- Docker学习--容器操作相关命令--docker logs 命令
geek_super
docker
dockerlogs命令的作用:用于获取和查看容器的日志输出,非常有用,可以帮助用户调试和监控运行中的容器。语法:dockerlogs[参数选项]CONTAINER(要操作的容器)。参数解释:-f,--follow:跟随日志输出(类似于tail-f)。–since:从指定时间开始显示日志。-t,--timestamps:显示日志时间戳。–tail:仅显示日志的最后部分,例如--tail10显示最后
- 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独立出来,数据持