- linux的 DBI/DBD 标准化安装文档
linux
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- Ubuntu20.04搭建Hyperledger Fabric2.4
WangF1rst
基础环境dockergolangraspberrypiarmfabric
基础环境操作系统:ubuntu-20.04.4安装Gitaptinstallgit安装curlaptinstallcurl安装dockeraptinstalldocker.ioapt-yinstalldocker-compose检测docker是否安装成功docker--version启动docker并设置docker为开机自启动systemctlstartdockersystemctlenabl
- 桂链:区块链模型介绍
桂云网络OSG
区块链
桂链区块链基于Hyperledger开发,本文转自HyperledgerFabric。HyperledgerFabric模型¶本节概述了HyperledgerFabric的关键设计特性,这些特性确保其成为全方位、可定制的企业级区块链解决方案:资产—资产定义使得几乎任何具有货币价值的东西都可以在网络上交换,包括从食品到古董汽车再到货币期货。链码—链码执行与交易排序的分离,限制了跨节点类型所需的信任和
- Git基础篇 - Linux(CentOS)源码安装Git实例
ChineHe
#Gitlinuxgitcentos
文章目录1.概述2.依赖安装3.安装Git3.1源码下载、解压3.2编译、安装3.3配置环境变量3.4验证1.概述文章通过实例来演示如何在Linux(CentOS)上使用源码方式来安装Git。2.依赖安装在安装git之前,我们先要安装git所需要的依赖yuminstallcurl-develexpat-develgettext-developenssl-develzlib-develgccperl
- 桂链:什么叫区块链网络?
桂云网络OSG
桂链区块链区块链网络服务器
本文由桂云网络转自HyperledgerFabric,桂链基于HyperledgerFabric开发,是桂云网络公司旗下的区块链产品。区块链网络¶这个话题会在概念层面上描述HyperledgerFabric是如何让组织间以区块链网络的形式进行合作的。如果你是一个架构师,管理员或者开发者,你可以通过这个话题来深入理解在HyperledgerFabric区块链网络中的主要结构和处理组件。这个话题会使用
- 可重构智能表面仿真平台
brook1711
RIS
RIScomponentsThisisapythonprojectforRIS(reconfigurableintelligentsurface)simulations.relatedworksMyfirstpaperLinktomypaper/Pdftomypaper:[1]X.Guo,Y.ChenandY.Wang,“Learning-basedRobustandSecureTransmiss
- Html5学习教程,从入门到精通, HTML5超链接应用的详细语法知识点和案例代码(18)
知识分享小能手
网页开发前端开发编程语言如门html5学习前端htmljava后端css3
HTML5超链接应用的详细语法知识点和案例代码超链接(Hyperlink),也称为跃点链接,是互联网和文档编辑中的一种重要概念。超链接的定义超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片、动画、程序、电子邮件地址、文件,甚至是一个音视频文件。如果点击了这个链接,当前页面的位置就会跳转到被链接的目标位置。在文档编辑中,超链接可以链
- 为什么Python使用者远远大于perl
perlpython
不认为两者的语法差异是造成如此局面的主要原因.perl的语法虽然比较特立独行,但也不是很难.总结如下原因:library(或者叫package)的使用如果是本语言原生的library,那没有问题.如果是需要调用外部函数/过程的package的话,那么就会有巨大的差异.python是预编译然后从pypi上下载python(pip)将package下载到本地然后解压后将package内容安装到不同的指
- Linux(Centos 7.6)命令详解:rename
豆是浪个
linux运维服务器centos
1.命令作用通常被用来重命名文件扩展名、删除文件前缀或后缀、替换特定字符等操作两个版本:C版本(默认版本)Perl版本(需要另行安装,安装执行perl-MCPAN-e'installFile::Rename')版本查看:执行manrename查看C版本manrename输出第一行提示:RENAME(1)UserCommandsRENAME(1)Perl版本manrename输出第一行提示:RENA
- 推荐项目:Python中的高性能Perlin噪声库——`noise`
毛彤影
推荐项目:Python中的高性能Perlin噪声库——noise项目地址:https://gitcode.com/gh_mirrors/nois/noise1、项目介绍在Python编程中寻找一种简单且快速的方法来生成Perlin噪声吗?那么noise库就是你的理想之选。这个开源项目由CaseyDuncan开发,提供了一个强大的工具集,用于在Python程序中轻松实现Perlin噪声的生成,适用于
- debian/control 文件中的${misc:Depends}
赵民勇
linuxdebianlinux运维
在Debian软件包的debian/control文件中,${misc:Depends}是一个动态生成的占位符,用于补充非共享库类依赖项的自动化管理。其作用与实现机制如下:一、核心作用补充维护脚本依赖当软件包包含维护脚本(如postinst、prerm等)时,若脚本依赖特定工具或软件包(如perl、debconf等),${misc:Depends}会自动检测并声明这些依赖。例如:Depen
- [原创](Modern C++)现代C++的关键性概念: 非常独特的std::sentinel_for概念(哨兵概念)
我不是代码教父
#C/C++探究c++sentinel开发语言
[作者]常用网名:猪头三出生日期:1981.XX.XX企鹅交流:643439947个人网站:80x86汇编小站编程生涯:2001年~至今[共24年]职业生涯:22年开发语言:C/C++、80x86ASM、ObjectPascal、Objective-C、C#、R、Python、PHP、Perl、开发工具:VisualStudio、Delphi、XCode、C++Builder、Eclipse技能种
- 蚂蚁集团可转正实习算法岗内推-自然语言
飞300
业界资讯自然语言处理
具备极佳的工程实现能力,精通C/C++、Java、Pvthon、Perl等至少一门语言:对目前主流的深度学习平台:tensorflow、pytorch、mxnet等,至少对其中一个有上手经验;熟悉深度学习以及常见机器学习算法的原理与算法,能熟练运用聚类、分类、回归、排序等模型解决有挑战性的问题,有大数据处理的实战经验;有强烈求知欲,对人工智能领域相关技术有热情,内推链接:https://u.ali
- 使用Perl和库WWW::Curl的爬虫程序
q56731523
perl爬虫开发语言前端javascript
使用Perl和WWW::Curl库编写爬虫程序是一个常见的做法。WWW::Curl是Perl对libcurl库的封装,提供了强大的HTTP请求功能,可以帮助你抓取网页内容。以下是如何使用Perl和WWW::Curl库编写一个简单的爬虫程序的步骤:1.安装WWW::Curl库首先,确保你已经安装了WWW::Curl库。如果没有安装,你可以使用cpan安装:cpanWWW::Curl2.编写爬虫程序u
- Perl初试
weixin_30480583
网络
通过接口发送短信的socket小样:#!/usr/bin/perl-w#auth:
[email protected]#what:sendmessagetophone#usage:sms.pl[phonenumber][text]usestrict;useSocket;if(scalar@ARGV!=2){die"Usage:sms.pl[phonenumber][text]\n";}my$p
- 关于shell文本处理
yuwu94
实践代码shell文本处理mac
最近用做了一些处理文本的工作,发现shell真的比较方便,总结了一些小代码。统计子目录下多个文件夹的行数forxin*.txt;docat$x|wc-l;done如果仅需要对单独文本catfilename|wc-l(会少一行,如果文件最后没有换行符)即可删除目录下所有文件的最后一行换行符,生成新的文件forxin*.txt;docat$x|perl-pe'chompifeof'>>../new/$
- [点点搬家]初试mod_perl+apache 之二
promenade
perlapache
[四年前的博客了,学习apache的纯真年代]学习practicalmod_perl中关于apache的配置,章节连接如下http://www.modperlbook.org/html/4-1-1-Configuration-Files.html1,".htaccess"文件,可以看到httpd.conf中有这样的模块AllowOverrideNoneOptionsNoneOrderallow,d
- shell文本处理
m0_74536424
Linux学习笔记运维linux
shell文本处理一、grep过滤来自一个文件或标准输入匹配模式内容。除了grep外,还有egrep、fgrep。egrep是grep的扩展,相当于grep-E。fgrep相当于grep-f,用的比较少。用法grep[OPTION]...PATTERN[FILE]...支持的正则描述-E,–extended-regexp模式是扩展正则表达式(ERE)-P,–perl-regexp模式是Perl正则
- Windows写代码,Linux运行 (WSL & VS Code)
ch120668
开发工具shell运维
在工作中,很多时候都是用Linux服务器,经常是一个PuTTY或是GitBash连上去,要写一些Shell,Python,Perl,Groovy等脚本,通常也是用vi/vim/emacs/nano等常用编辑器,这些都很好用,也习惯了。有时候,当自己想要学点东西,想要配个Linux的环境,一般都是装个虚拟机(如VirtualBox),然后安装一个Ubuntu或CentOS。现在,Windows10(
- c#和python更适合爬虫_为什么python适合写爬虫?(python到底有啥好的?!)
weixin_39974811
c#和python更适合爬虫
我用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python写的。因为目前对python并不熟,所以也不知道这是为什么。百度了下结果:1)抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问
- php mongodb oid,use MongoDB::OID;
彤垚
phpmongodboid
#!/usr/bin/perlusewarnings;usestrict;useData::Dumper;useMongoDB;useMongoDB::OID;my$con=MongoDB::Connection->new;my$db=$con->syncrobid;my$account_col=$db->account;$account_col->remove;my$account_data={
- 腾讯集团软件开发-后台开发方向内推
飞300
业界资讯mysqljava
熟练掌握C/C++/Java/Go等其中一门开发语言;TCP/UDP网络协议及相关编程、进程间通讯编程;专业软件知识,包括算法、操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等有一定了解的:1、Python、Shell、Perl等脚本语言;2、MySQL及SQL语言、编程;3、NoSQL,Key-value存储原理。1、深入理解业务需求和产品设计,高效地实现并优化产品功能;2、持续优
- Redis :01---Redis简介和安装
前网易架构师-高司机
2025年最新-数据库运维数据库数据结构大数据分布式
一、Redis简介·Redis官网:https://redis.io/·Redis是一种基于键值对(key-value)的NoSQL数据库·与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此Redis
- Redis——知识点
其实不会敲代码
面试题真的记不住一点redis
Redis问答1.认识Redis1.1什么是RedisRedis是一种基于内存的数据库,对数据的读写都在内存上操作,因此读写速度很快,常用于缓存、消息队列、分布式锁等的应用场景Redis提供了很多数据类型来支撑各种场景,例如String、hash、list、set、zset、bitmapas、hyperloglog、GEO,对数据的操作都是原子性的,单线程过程,不存在锁的竞争除此之外,Redis还
- IvorySQL 4.2 发布
数据库
IvorySQL4.2已于2025年1月13日正式发布。新版本全面支持PostgreSQL17.2,并修复了多项bug。增强功能PostgreSQL17.1增强功能确保当RLS应用于非顶级表引用时,缓存的计划会标记为依赖于调用角色使libpq在SSL或GSS协议协商期间丢弃接收到的错误消息修复SETSESSIONAUTHORIZATION和SETROLE之间的意外交互防止受信任的PL/Perl代码
- python读取redis大数据_大数据系列——Redis学习笔记
weixin_39661345
1.Redis的简介Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过RedisSentinel提供高可用,通过RedisCluster提供自动分区。简言之,Redis是一种面向“键/值”对数据
- python-个人笔记
尘叶风凌
个人笔记python
入门python运行Python简单教程Python综述python是什么Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python是交互式语
- 使用vim做笔记-vimtex
vimlatex
本文基本上是对HowI'mabletotakenotesinmathematicslecturesusingLaTeXandVim一文的实践操作。感谢原作者的分享。本文基础平台Windows11软件gvimSumatraPDFmiktexStrawberryperlVim插件vimtexutilsnip正文下载安装上述软件,包括gvim,SumatraPDF,miktex,Strawberrype
- 基于oracle linux的 DBI/DBD 标准化安装文档
linux
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- 系统提权之:Unix 提权
f_carey
Metasploitunix安全提权
郑重声明:本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。系统提权之:Unix提权1Unix内核漏洞提权1.1利用前提1.2利用NC建立Shell会话(便于操作)1.2.1本地配置NC监听1.2.2上传perl-reverse-shell.pl反弹Shell1.3查
- 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独立出来,数据持