- 多表查询_关联查询
活跃家族
sql
innerjoin:通常关联项on后面的是主外键,两个表都有的才显示leftjoin:左连,select*fromSleftjoinBons.字段=B.字段,一定会将左边表的数据全部查询出来rightjoin:select*fromSrightjoinBons.字段=B.字段一定会将右边表的数据全部查询出来索引:增加查询效率,数据量很大的时候,提高查询速度,当给表加索引之后,重新插入数据,就会让索
- MyBatis之手动映射
cyt涛
javamybatis手动映射resultMap数据库xmlXML查询
在一些简单的场景下,MyBatis能够自动完成对象和数据库字段之间的映射,这时就不需要手动映射。手动映射通常在以下情况下需要使用:复杂查询或结果:当查询返回的结果结构与实体类不完全匹配,或者返回的结果需要进行复杂的处理时。多表关联查询:当通过SQL进行多表联合查询时,返回的结果可能包含多个实体类的字段,这时需要手动映射结果到特定的对象。非标准字段名:数据库的字段名与实体类属性名不一致,自动映射工具
- mybatis xml文件中用 if 标签判断字符串是否相等
斯南
mybatisxmljava
方法一:推荐推荐a.del_flag=#{delFlag}方法二:a.del_flag=#{delFlag}注意test后面跟的是双引号("")还是单引号('')ps:用equals()亲测也可以方法三:a.del_flag=#{delFlag}注意:使用如下方式是错的12a.del_flag=#{delFlag}3转载文章关联查询删除表中指定的数据deleteafrombasic_mainale
- 查mysql数据_MySQL 查询数据
weixin_39613208
查mysql数据
sql语句的关联查询左关联:leftjoin...on...右关联:rightjoin...on...格式:select字段from表1leftjoin表2on条件(一般为表1与表2的关联条件)查询用户的所有订单信息:user用户表orders订单表select*fromuserleftjoinordersonuser.id=orders.user_id稍微复杂点统计用户的订单数量(需要分组,通过
- javascript写一个本地数据库支持SQL查询-SAAS本地化未来之窗行业应用跨平台架构
未来之窗软件服务
未来之窗混合云数据库sqljson
一、sql语句优点数据查询灵活:可以通过各种条件进行精确查询,比如使用WHERE子句指定特定的筛选条件,轻松从庞大的数据库中获取所需数据。例如,“SELECT*FROMemployeesWHEREdepartment='Sales'”可以快速找出销售部门的所有员工信息。支持多表关联查询,能够从不同的表中提取相关数据进行整合分析。例如,通过“JOIN”操作可以将员工表和部门表关联起来,查询出每个员工
- Java-MyBatis 框架之延迟加载、缓存和分页
【小红帽】
第一节:性能优化1.1延迟加载1.1.1什么是延迟加载resultMap中的association和collection标签具有延迟加载的功能。延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。需要关联信息时再去按需加载关联信息。这样会大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。1.1.2设置延迟加载Mybatis默认是不开启延迟加载功能的,我们需要手动开启。需要在Sq
- mysql 只返回第一条_mybatis 关联查询时,从表只返回第一条记录解决办法
weixin_39639518
mysql只返回第一条
如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。造成以上情况可能的原因:1、级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的。但在mybatis中主从表需要为相同字段名设置别名。设置了别名就OK了。例子:主表Standard,从表StandEntity,均有名为id的字段123(依据下面的select中更名的字段id别名se_id,在此
- shardingsphere自定义hint分片算法,完美实现按区域编码数据隔离,没改一行旧代码
因为已经改造了登录平台,实现了集群统一部署,然后后续就是继续弄集中统一部署服务改造(这里的集中统一部署的意思是区别于每个区域私有部署,服务本身还是可以弹性伸缩的),首先改造一个比较简单的白名单微服务,只涉及到三张表,业务逻辑也简单就是CRUD以及关联查询。因为当初这个服务是由其他人实现交给我这边部署维护一下,具体的业务逻辑和代码我也没看过,所以改造的时候就想着尽量不动代码,无侵入式的或者低侵入式的
- 「小程序JAVA实战」小程序首页视频(49)
IT人故事会
原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:「小程序JAVA实战」小程序首页视频(49)视频显示的内容是视频的截图,用户的头像,用户的昵称,都需要一个结合。所以涉及到关联查询.源码:https://github.com/limingios/wxProgram.git中wx-springboot和No.15获取系统信息官网介绍https://developers.weix
- MySQL跨服务器关联查询
敢敢变成了憨憨
服务器运维
1.首先确认服务器的Federated引擎是否开启showengines;修改数据库的配制文件my.ini,(我的my.ini的路径为:D:\ProgramData\MySQL\MySQLServer5.7/my.ini),将federated添加到my.ini文件中到MySQL的my.cnf配置文件中修改在[mysqld]下方加入federated然后重启msyql服务,再次检查federate
- JPA Hibernate查询n+1问题,关联实体查询加载慢优化
Asparrow
JPAjavajpahibernatemysql优化
项目场景:提示:在使用JPA列表查询查询,明细表关联主表信息,这时查询异常慢需要20s+接口才能返回例如:学生表关联班级表,多个学生关联一个班级.在对学生表列表查询并关联查询班级表时,JPA查询发送了n+1条查询语句(n为数据条数)问题描述:这里加入伪代码:/***班级表**/@Entity@Table(name="student_class")classStudentClass{/***班级名称
- Hive经典面试题
Yang_6234
1.Hive表关联查询,如何解决数据倾斜的问题1)倾斜原因:map输出数据按keyHash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce上的数据量差异过大。(1)key分布不均匀;(2)业务数据本身的特性;(3)建表时考虑不周;(4)某些SQL语句本身就有数据倾斜;如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值。2)解决方案
- 4.mybatis 高级结果查询
半夏_2021
mybatis从入门到精通mybatismysql数据库
商品订单模型一个用户可以下n个订单,一个订单只能属于一个用户。一个订单可以有多个订单详情,订单和订单详情是一对多的关系。一个订单中可以有多个商品,一个商品也可以属于多个订单,订单和商品多对多的关系关联查询几个需要注意的细节1.超过三个表禁止join。需要join的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引2.不得使用外键与级联,一切外键概念必须在应用层解决3.字段允许适
- C#系列-C#EF框架实现关联查询(26)
管理大亨
C#系列c#开发语言
在EntityFramework(EF)中,关联查询通常通过导航属性(NavigationProperties)和LINQ(LanguageIntegratedQuery)来实现。导航属性是实体类之间的一对一、一对多或多对多关系的表示。使用这些属性,你可以轻松地从一个实体导航到相关联的实体。以下是一个简单的示例,展示了如何在EF中使用导航属性和LINQ来实现关联查询:首先,假设你有两个实体类:Bl
- 你知道 Mybatis 框架如何实现级联关系吗?
天上的小仙女呀
级联关系实现的方式一对一一对多案例实操一对一关系实现方式resultType/resultMap接口方法一对一关联查询resultType@paramuserId@returnUserDtoqueryUserCardInfoForResultType(@Param("userId")intuserId);sql查询SELECTu.id,u.user_nameASuserName,u.user_pw
- mysql 使用join进行多表关联查询
曹朋羽
mysql学习记录mysql数据库
join类型在一些报表统计或数据展示时候需要提取的数据分布在多个表中,这个时候需要进行join连表操作。join将两个或多个表当成不同的数据集合,然后进行集合取交集运算。比如有订单Order表记录用户id,如果像查询订单对应的用户信息,可以将Order和User表进行关联。根据join结果集计算方式不同,join大致分为两种主要类型:内连接内连接(innerjoin)也称为等值连接,是最常用的Jo
- mysql的慢sql优化
乐之者v
A1-mysqlmysqlsql数据库
为什么要优化慢sql?慢sql会长时间占用数据库连接数,如果项目中有大量的慢sql,那么可用的数据库连接数就会变少,进而会影响业务。慢sql优化优化慢sql,最常见的就是添加索引。查询语句中不要使用select*尽量减少子查询,使用关联查询(leftjoin,rightjoin,innerjoin)替代减少使用IN或者NOTIN,使用exists,notexists或者关联查询语句替代or的查询尽
- 网站高性能架构设计——高性能数据库集群
编程广角镜
数据库postgresql系统架构java性能优化
从公众号转载,关注微信公众号掌握更多技术动态---------------------------------------------------------------一、高性能数据库简介1.高性能数据库方式读写分离:将访问压力分散到集群中的多个节点,没有分散存储压力分库分表:既可以分散访问压力,又可以分散存储压力2.为啥不用表分区如果SQL不走分区键,很容易出现全表锁;在分区表实施关联查询,就
- 【Lazy ORM】关联查询
小吴小吴bug全无
java开发语言LazyORM
Gitee版本信息1.2.2-JDK17-SNAPSHOTListmenuList=lazyLambdaStream.selectList(LazyWrappers.lambdaWrapper().eq(RoleMenuDO::getIsDeleted,false).eq(RoleMenuDO::getRoleId,role.getId()).internalJoin(LazyWrappers.l
- mybatis使用left-join查询结果总是一对一的
rainbowz
image.png我们的第18行t2.id和第2行t1.id重复了,因此我们给t2.id起了别名以此来和t1.id区分上面的collection集合里面也要相应的修改。将之前38行的column=id修改为tid,这样我们的collection就能返回正确的一对多关系了。image.png参考Mybatis使用LeftJoin进行一对多关联查询导致结果总是一对一的解决方法https://blog.
- MybatisPlus多表关联查询
无畏@
mybatis
MP多表关联查询我们关联user表和product表,两个表如下:user表product表现在我们要关联两个表查询出product的全部信息已经对应的用户名字先写sql语句然后创建vopackagecom.hyn.mybatisplus.entity;importlombok.Data;@DatapublicclassProductVo{privateIntegercategory;privat
- 【PHP】TP5.0模型关联搜索查询
zzoood
phpTP5phpsql数据库
在ThinkPHP5.0中,模型关联为我们提供了一种便捷的方式来操作数据库,尤其是在进行关联查询时。本文将介绍如何在TP5.0中使用模型关联进行搜索查询,并解决可能出现的报错问题。一、模型方法在TP5.0中,模型方法是实现关联的关键。以下是一个示例,展示了如何关联到user表:/***关联user表*/publicfunctionuser(){return$this->belongsTo(User
- mysql关于left join关联查询时on和where条件区别
红烧柯基
javamysqlmysql数据库
说明:用leftjoin关联查询时,数据库会先生成一张临时表,我们查询到的就是临时表的数据.1.leftjoin:以左表为基准,根据on条件过滤连接生成临时表,on后面的过滤条件对左表无效,都会返回左表中的数据,where是生成临时表之后,再对临时表进行过滤,跟leftjoin没啥关系了,这里过滤的是临时表数据了.2.rightjoin:逻辑同上3.fulljoin:以左表为基准,根据on条件过滤
- mybatis---高级映射、延迟加载、查询缓存
全满
高级映射(resultMap返回)首先书写查询语句select*fromuser,orderswhereuser.id=orders.user_id其次配置resultMap什么是延迟加载resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载的功能需求:如果查询订单并且关联查询用户信息。
- mybatis缓存-延迟加载
Auroral746
mybatisjava数据库mybatis
设置延迟加载什么是延迟加载resultMap可实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。需要关联信息时再去按需加载关联信息。这样会大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。减少内存的开销。导入cglib-node
- 深入了解关联查询和子查询
天马行空的程序猿
数据库数据库sql
推荐阅读给软件行业带来了春天——揭秘Spring究竟是何方神圣(一)给软件行业带来了春天——揭秘Spring究竟是何方神圣(二)文章目录推荐阅读关联查询子查询关联查询关联查询从多张表中查询对应记录的信息,关联查询的重点在于这些表中的记录的对应关系,这个对应关系也称为连接条件。selectk.kname,k.sal,h.locfromk,hwherek.depino=h.depino表名也可以写别名
- Python入门指北二十三
程序媛小刘
python开发语言
Python中有哪些常用的ORM框架?它们的特点是什么?Python中有多个常用的ORM框架,每个框架都有其独特的特点和适用场景。以下是其中几个常用的ORM框架:SQLAlchemy:SQLAlchemy是Python中一个非常流行的ORM框架,它支持多种数据库系统,如MySQL、PostgreSQL、SQLite等。SQLAlchemy提供了丰富的功能和灵活性,包括强大的查询API、支持关联查询
- Mongodb聚合快速参考
原子星
mongodbmongodb数据库
聚合管道是mongodb的重要特性和功能之一,通过聚合管道可以且不仅限于实现关联查询、汇总、分组、统计等高级应用。下面的内容根据mongodb官方文档翻译整理而来,供速查。水平有限,难免有误,不足之处恳请批评指正。集合聚合db.collection.aggregatedb.collection.aggregate方法中,管道的阶段是个数组,每个数组元素是一个阶段。文档通过每个阶段进行处理后输出。除
- mybatis一对多查询,list中的泛型是包装类
你是理想
mybatismybatisjava
假如有两个实体类,用户和角色,其中用户可以有多个实体类,要使用到association标签property代表属性名称column代表关联查询时要传入的keyjavaType代表代表属性的数据类型ofType标明此时如果具体的泛型,如果没有可以不写用户实体类importcom.fasterxml.jackson.annotation.JsonFormat;importio.swagger.anno
- springboot 之mybatis 多表关联查询
缘不易
springbootmybatisspringboot
数据库表一对多查询自定义实体类:packagecom.example.entity;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importjava.io.Serializable;importjava.util.List;/***(Dept)实体类**@authormakejav
- 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独立出来,数据持