- 批量获取虾皮shopee商品详情信息 爬虫
a6229203
爬虫数据库前端
每天100万详情联系736131417v:IpAnt_Proxy在当今的电子商务环境中,数据是至关重要的。对于电商平台的商家和开发者来说,获取商品详情信息是他们日常工作的关键部分。虾皮Shopee作为东南亚最大的电商平台,其商品信息对于商家和开发者来说具有极高的价值。本文将分享如何通过API批量获取虾皮Shopee的商品详情信息,并提供测试代码,让您轻松上手。一、了解虾皮ShopeeAPI虾皮Sh
- table合并行
花归去
vue3elementvue.jsjavascriptelementui
{{scope.row.gdLength/10}}importtype{TableColumnCtx}from'element-plus';consttableData=[{"id":6140,"projectId":1306,"projectName":"","sectionId":12985,"sectionName":"YYZQ-9标","tunnelId":96160,"tunnelNam
- Linux驱动开发实战之SRIO驱动(一)
niuTaylor
linux驱动开发c语言开发语言
活动发起人@小虚竹想对你说:这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!提醒:在发布作品前,请将不需要的内容删除。LinuxSRIO驱动开发终极指南:从基础到实战一、SRIO协议基础SRI
- roslaunch打开更改gazebo world报错:SpawnModel: Failure - model name mrobot already exist.
阿斯顿的风格
自动驾驶人工智能机器学习
roslaunchmbot_gazeboview_mbot_gazebo_obstacle2.launch...loggingto/home/suifeng/.ros/log/e98b739c-cd05-11ec-9bfc-b0fc364da57d/roslaunch-suifeng-RESCUER-R720-15IKBN-20614.logCheckinglogdirectoryfordisku
- CentOS7 平滑升级 MariaDB 5.5 到 10.x 新版本实践
weixin_34318272
运维数据库
前言自从CentOS7开始,自带的数据库就变成MariaDB了,yum安装之后的默认版本是5.5,但是这个数据版本已经比较老了,无论是安装全新的Percona还是升级MariaDB第一步始终是不要忘记备份。CentOS7平滑升级MariaDB5.5到10.x新版本实践更新历史2018年11月14日-初稿阅读原文-https://wsgzao.github.io/post...扩展阅读MariaDB
- H5动态生日祝福源码
cas215asd
源码html5
源码名称:动态生日祝福源码源码介绍:一款H5动态生日祝福源码,源码带有文字敲入效果与蛋糕生成特效。需求环境:H5下载地址:https://www.changyouzuhao.cn/14540.html
- 借Kinect 扫描 软件 reconstructMe skanect ksan3d
learn deep learning
三维重建
[基础技术]3D扫描教程http://bbs.kechuang.org/read/59979楼主#更多发布于:2013-08-2314:48入门级的3D扫描ReconstructMe硬件kinectXBox360不兼容kinectforwindows或者XtionProLive(XtionProLive开发版包装,有Microphone和RGBsensor)有电动转盘更好,win732位或者64位
- LeetCode146.LRU 缓存(哈希表+双向链表)
techpupil
缓存散列表链表
请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果关键字key已经存在,则变更其数据值value;如果不存在,则向缓存中插入该组k
- $.ajax()方法详解
小二爱编程·
ajaxjavascriptjquery
jquery中的ajax方法参数总是记不住,这里记录一下。目录1.url2.type3.timeout4.async5.cache6.data7.dataType8.beforeSend9.complete10.success11.error12.contentType13.dataFilter14.dataFilter15.global16.ifModified17.jsonp18.userna
- Eclipse运行带参数的java程序(转)
frank1998819
java开发工具
N年不用了,再用有点忘记了运行的方法是,右键——》runas——》runconfiguration——》Arguments——》programarguments输入62145698910即每一个参数用空格分开。
- 车载以太网测试-14【交换机以及MAC地址表】
车载测试工程师
车载以太网测试tcp/ip网络网络协议经验分享车载系统
目录1摘要2车载交换机概述2.1OSI模型中的位置2.2车载交换机在数据链路层的功能3车载交换机的工作原理3.1车载交换机的关键工作步骤3.2车载交换机的关键技术3.3车载交换机的工作示例3.4MAC地址表3.4.1MAC地址表的工作原理3.4.2MAC地址表示例3.4.3MAC地址表的超时机制4总结1摘要车载交换机工作在OSI模型的数据链路层(DataLinkLayer),具体来说是数据链路层的
- CentOS 7.x 快速搭建ARK服务器
Aorsion
Linuxarkserverarkservercentos方舟服务器搭建Linux方舟开服教程方舟多人联机
本人菜鸟一枚,最近喜欢上了ark,也找到了2个基友,但是在别的服玩的不是很开心(非人民币玩家,你们懂),刚好有台闲置的拯救者14笔记本,i7-4720HQ、16G内存、128G三星970pro,1T机械,索性拿来装个Centos7.6搭个服自己玩,就多点电费的事,下面把自己折腾一天的开服经历做个笔记留给和我一样的童鞋,喜欢开服工具的请绕道友情提醒:ARK需要大量内存,建议使用至少具有6GBRAM以
- 10分钟了解股市基础知识
leo_厉锵
金融栏大数据
一、交易时间周一至周五,法定节假日除外。盘前集合竞价(9:15-9:25),25分开出开盘价。其中15-20分可挂单可撤单,20-25分可挂单不可撤单。盘中连续交易时间为上午9:30-11:30,下午13:00-14:57。尾盘集合竞价时间为14:57-15:00,三分钟可挂单不可撤单,15:00开出收盘价。创业板和科创板在15:05-15:30有盘后交易时间,沪深两市主板无。夜市委托一般为晚上1
- 【Java】TCP网络编程:从可靠传输到Socket实战
郑州吴彦祖772
【Java】网络原理java并发编程tcp/ip
活动发起人@小虚竹想对你说:这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!提醒:在发布作品前,请将不需要的内容删除。各位看官,大家早安午安晚安呀~~~如果您觉得这篇文章对您有帮助的话欢迎您一
- rust学习笔记16-206.反转链表(递归)
水蜜桃one
学习笔记链表
rust函数递归在14中已经提到,接下来我们把206.反转链表,用递归法实现递归函数通常包含两个主要部分:基准条件(BaseCase):递归终止的条件,避免无限递归。递归步骤(RecursiveStep):将问题分解为更小的子问题,并调用自身来解决这些子问题。//Definitionforsingly-linkedlist.#[derive(PartialEq,Eq,Clone,Debug)]pu
- 快速启动flink项目
for your wish
flinkjava大数据
按照这个步骤1分钟内创建完成idea-----File----new---Project------Maven----Createfromarchetype----AddArchetype弹出框:GroupId填org.apache.flinkArtifactId填flink-quickstart-javaVersion填1.14.0选中刚刚添加的Archetype,点Next填写你要创建的这个f
- 基于AT89C52单片机的智能导盲杖报警设计
七月小卖铺
单片机单片机嵌入式硬件
点击链接获取Keil源码与ProjectBackups仿真图:https://download.csdn.net/download/qq_64505944/90498287?spm=1001.2014.3001.5503C+22部分参考设计如下:摘要超声波测距技术因其具有较强的指向性、低能耗、较长的传播距离等优点,已成为广泛应用于各类传感器技术和自动控制技术相结合的测距方案之一。超声波传感器利用声
- 代码管理工具——SVN
weixin_33728708
git开发工具python
2019独角兽企业重金招聘Python工程师标准>>>SVN版本控制的作用:记录若干文件内容变化,以便将来查阅特定版本修订情况。版本管理工具发展简史,cvs-->svn-->Git(参考:http://luckypoem14.github.io/test/2012/04/24/scm-history/)。svn全称subversion,是一个开源版本控制系统(C/S架构),始于2000年;git(
- 141.HarmonyOS NEXT系列教程之3D立方体旋转轮播案例讲解之IDataSource接口实现
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之3D立方体旋转轮播案例讲解之IDataSource接口实现效果演示1.IDataSource接口概述1.1接口作用IDataSource接口定义了数据源的标准接口,提供了:数据访问方法数据操作方法监听器管理方法1.2接口实现e
- 【Android 】零基础到飞升 | Git之使用GitHub搭建远程仓库
A little strawberry
gitjavagithubpython编程语言
1.5.2Git之使用GitHub搭建远程仓库本节引言:在上一节中,我们学习了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;读者肯定不满足与本地是吧,假如是多个人一起来开发一个程序呢?我们需要一个作为服务器的远程仓库!当然搭建一个服务器是需要成本的,为什么不把项目托管到Github上呢?作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随
- 6-7 统计某类完全平方数
TXHNY
ATP习题算法
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:intIsTheNumber(constintN);其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include#includeintIsTheNumber(constintN);intmain(){ intn1,n2,i,c
- 二维数组每列排序
TXHNY
C语言习题
一个4×5的整型二维数组,从键盘输入数据,并对该数组的每一列按从小到大的顺序排列后输出。输入格式:输入4行5列的矩阵,每行第一个数前没有空格,每行的每个数之间各有一个空格。输出格式:输出4行5列的矩阵,每行第一个数前没有空格,每个数输出占4列列宽。输入样例:51142123458452175364输出样例:11121523427434485565#includeintmain(void){inta
- PTA基础编程集7-20 打印九九口诀表 (15分)
ohhTechSoon
PTA基础编程集
7-20打印九九口诀表(15分)下面是一个完整的下三角九九口诀表:11=112=222=413=323=633=914=424=834=1244=1615=525=1035=1545=2055=2516=626=1236=1846=2456=3066=3617=727=1437=2147=2857=3567=4277=4918=828=1638=2448=3258=4068=4878=5688=6
- 洛谷每日1题-------Day25__P1424 小鱼的航程(改进版)
__雨夜星辰__
洛谷每日1题算法c++数据结构学习笔记
题目描述有一只小鱼,它平日每天游泳250公里,周末休息(实行双休日),假设从周x开始算起,过了n天以后,小鱼一共累计游泳了多少公里呢?输入格式输入两个正整数x,n,表示从周x算起,经过n天。输出格式输出一个整数,表示小鱼累计游泳了多少公里。输入输出样例输入#1复制310输出#1复制2000说明/提示数据保证,1≤x≤7,1≤n≤106。题解#includeusingnamespacestd;int
- 140.HarmonyOS NEXT系列教程之3D立方体旋转轮播案例讲解之DataChangeListener接口
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之3D立方体旋转轮播案例讲解之DataChangeListener接口效果演示1.DataChangeListener接口概述1.1接口定义interfaceDataChangeListener{onDataReloaded()
- 【OpenGL】实现三维空间漫游和立方体、球体贴图
a9c93f2300
圖形學3d
图像处理引用文件stb_image.h访问镜像下载:https://gitee.com/mirrors/stb-image主函数main.cpp#include#include#defineSTB_IMAGE_IMPLEMENTATION#include#include#include#include#include#include#includeconstGLfloatPI=3.14159265
- C 中调用WIN32API函数
就叫二号人物
http://www.pinvoke.net/磐实文章站(首页)首页>VisualBasic软件开发资料>API函数http://www.panshsoft.com/Sort_VB/API_fun/GetWindowRect用法http://blog.csdn.net/coolszy/article/details/5601455函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标
- 【DevOps】Rancher:rancher2.4.16 高可用安装文档
运维归一
DevOpsdockerzookeeper运维
视频教程视频教程:https://edu.csdn.net/learn/38191/604440?spm=1003.2001.3001.4143RancherHA集群安装部署当前最新版本V2.4.16安装流程:rke安装k8s,在k8s集群上搭建helm,通过helm创建rancher容器应用节点名称ip地址系统版本rke,k8s-master01,rancher192.168.1.9centos
- 149.HarmonyOS NEXT系列教程之3D立方体旋转轮播案例讲解之状态管理与数据结构
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之3D立方体旋转轮播案例讲解之状态管理与数据结构效果演示1.状态管理系统1.1状态装饰器//全局状态@StorageLink('avoidAreaBottomToModule')avoidAreaBottomToModule:n
- 145.HarmonyOS NEXT系列教程之3D立方体旋转轮播案例讲解之自定义过渡效果
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之3D立方体旋转轮播案例讲解之自定义过渡效果效果演示1.自定义过渡效果概述1.1基本结构customContentTransition({timeout:1000,//超时时间transition:(proxy:SwiperCo
- 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独立出来,数据持