- windows本地使用docker-compose构建nginx+php访问thinkphp5
星芯ya
Docker学习docker容器运维
前言:继上一篇windows本地使用docker+nginx+mysql部署thinkphp5https://blog.csdn.net/hmx089674/article/details/136683679本期使用docker-compose搭建环境访问thinkphp5程序。第一步:准备工作检查本地是否安装docker-compose(cmd终端输入docker-compose-v检测,安装D
- thinkphp5.0项目配置多MySQL数据库连接
thinkphp5mysql
公司项目需要连接2个MySQL数据库背景介绍:公司项目是基于fastadmin1.4.0.20230711开发的,里面用到的thinkphp版本是5.0.25,项目涉及到小程序端和设备端,之前做的是两个项目,但是部署在同一台服务器上,分别对应两个数据库,之前两个项目之间的交互是通过互相调用对方接口的方式实现的,优化的时候就想通过在一个项目中连接两个MySQL数据库的方式,避免互相调用带来的性能开销
- 【thinkphp5】Session和Cache记录微信accesstoken
hj1043
fastadminPHP微信java开发语言
记录一个项目实际遇到的坑,不要把token存放在session,要存在在cache里面!!因为Session并不能设置expire过期时间,Session::set()方法第三个参数是作用域,而非过期时间!!!因此不能混用cache的用法。session的set方法/***session设置*@paramstring$namesession名称*@parammixed$valuesession值*
- thinkphp5.1升级thinkphp6遇到的坑
程序员君常笑
thinkphpphp
想着将就项目从tp5.1升级到tp6,哪知道遇到这么多坑,因为tp6不是写给MVC结构,记录下默认安装thinkphp6有问题如果使用指令composercreate-projecttopthink/thinktp安装,不能完全安装。需要添加--ignore-platform-reqs。//安装composercreate-projecttopthink/thinkrent6--ignore-pl
- Thinkphp5.0读取自定义配置文件
zhao_teng
tp5
//新建配置文件,位置application/extra/user.php//文件内容格式return["name"=>"xiaoli","age"=>15];//先引用usethink\Config;//读取自定义拓展配置dump(config('user'));dump(config('user.name'));————————————————
- tp5 admin.php,TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统
江东的铁壁
tp5admin.php
新版本在线体验地址已经上线,欢迎体验---2017-01-14======================TP-adminTP-admin即基于ThinkPHP5拿来即用高性能后台管理系统官方文档在线体验账户:13330613321密码:123456线上仓库源代码下载git克隆:gitclonehttps://github.com/Astonep/tp-admin本地部署运行环境要求PHP>=5.
- 抖音机构号授权矩阵系统源码,短视频账号矩阵系统系统源码/独立部署代码
疯狂运营官ymhao87
矩阵阿里云
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、抖音矩阵机构号是什么?二、使用步骤1.机构号申请2.本地发布任务前言抖音机构号授权矩阵系统源码是一个为抖音机构号提供授权管理的系统。该系统前端使用了uni-app和vue作为开发框架,后端采用了ThinkPHP5、wokerman和ElementUI。同时,剪辑版块使用了阿里云智能媒体服务和阿里云对象存储来实现。抖音机
- thinkphp5 软删除
1,介绍:软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。标记就是通过数据表中delete_time字段设置软删除时候的时间从而屏蔽对这些数据的查询等操作。没有设置的记录的delete_time字段显示的是null。2,modul中设置详细介绍请仔细看注释model类中写:protected$autoWriteTimestamp='timeStamp';设
- ajax php token,thinkphp5 ajax提交token更新的问题
Score 赛高
ajaxphptoken
在使用thinkphp5做编辑删除的ajax操作时,携带token。点击第一次时验证器提示成功,点击第二次时提示无效的令牌。后来发现原因是因为vartoken='{$Request.token}';这里的值没变所以导致令牌验证失败。现在在控制器中$request->token();重新生成了token并已header形式返回到客户端,但是如何让ajax提交时的token为新的值呢?我的代码改如何修
- TPshop学习(4)TPshop目录结构
phper8
php
学习内容:https://www.kancloud.cn/tpshop/thinkphp5/280417ThinkPhP5项目实战(第四讲):请看下面的图,左边是thinkphp5的目录,右边是tpshop的目录。Admin管理员模块Api手机app接口模块(?)Home网站前台模块Mobile手机网站模块application\home\logic共用逻辑层代码application\commo
- thinkphp5框架一小时搭建一个php后端(1)
小甲鱼同学
php后端开发语言
开发环境使用phpstudy编辑器用sublime数据库navicat需要下载composer先配置好本地域名,然后需要我们将资源引入到项目里面下载地址www.layui.com.layui框架有很多我们后台开发需要的控件,帮助我们高效完成后台搭建。先创建我们的入口文件admins.php,接着我们在application里面建立一个admins的目录。接着我们需要创建登录需要用到的控制器。Acc
- 最新码支付个人免签支付系统源码 三网免挂版本 兼容易支付
百创科技
开源
介绍:最新码支付个人免签支付系统源码三网免挂版本兼容易支付本系统是基于thinkphp5.0FastAdmin开发的一套新型聚合收款、聚合支付系统一款专业的聚合免签收款系统,无需对接其余平台,个码就可收款,灰常的方便快捷,集成实现三网免挂功能,无需挂繁琐的监控软件就可实现回调,更便捷的监控方式,更优的产品质量,更可靠的服务态度,值得您的选择!图片
- 龙腾码支付系统三网免挂个人免签支付兼容易支付带详细教程
酷讯网络_240870160
酷讯部落格学习开源
一、系统简介码支付是基于ThinkPhp5.0FastAdmin开发的一套新型聚合收款、聚合支付系统,是一款专业的聚合免签收款系统,无需对接其余平台,个码就可收款,灰常的方便快捷,集成实现三网免挂功能,无需挂繁琐的监控软件就可实现回调,更便捷的监控方式,更优的产品质量,更可靠的服务态度,值得您的选择!二、功能亮点云端免挂机,微信扫码就可实时收款微信支付宝免输金额根据订单号秒回调TP5FastAdm
- pgsql thinkphp5_TP5 连接 postgres 问题
weixin_39983563
pgsqlthinkphp5
问题一:配置修改为pgsql,提示couldnotfinddriver1.tp5下database配置'DB_TYPE'=>'pgsql',2.打开php扩展-》开启php_pgsql.dll,php_pdo_pgsql.dll在wampserverxampp下PHP使用PDO支持postgresqlhttp://blog.csdn.net/yageeart/article/details/667
- 线上创业协会小程序源码介绍
wx_cxc2848698918
微信小程序小程序
基于ThinkPHP+FastAdmin+UniApp开发的一款线上创业协会小程序源码,ThinkPHP框架开发,具备高效、安全、稳定的特点。ThinkPHP框架在PHP开发领域享有盛誉,其简洁的语法和强大的功能为开发者提供了良好的开发体验。同时,FastAdmin后台管理系统的加入,使得小程序的管理更加便捷高效。FastAdmin是一款基于ThinkPHP5开发的快速开发框架,具备丰富的功能模块
- aidigu开源微博项目程序,PHP开发的开源微博系统,自媒体个人创业、网盘推广首先
2301_78755287
php媒体开发语言开源数据库开发
一、软件介绍文末提供程序和源码下载学习PHP开发的开源微博系统,采用PHP+MySQL开发,框架采用ThinkPHP5.1,用户登录后拥有专属ID,支持表情、关注用户,网盘分享等功能,支持图片上传,视频上传,网盘存储分享。测试地址http://t.aidigu.cn二、安装方式1.克隆源码,导入数据库即可(文末提供下载)2.复制example_env为.env并修改.env相关配置3.网站的运行目
- thinkphp5常用函数汇总_THINKPHP5(TP5)新手入门必看教程
负智年帖
thinkphp5常用函数汇总
安装配置官网下载TP5完整版(初学者学习用的)解压到本地的开发环境phpstudy中,默认的入口文件是public,访问public会看到TP5成功页面。目录介绍一般开发中,代码都是写在application这个文件夹中开发一个项目的时候,通常分为前台和后台,前台一般放在index模块中,后台一般放在admin模块中。也可以自己新建一个模块模块内部,都遵循着MVC架构controller、mode
- TP5的框架架构是怎样的?使用场景是什么?底层原理是什么?
快点好好学习吧
PHP1024程序员节
ThinkPHP5(简称TP5)是一个轻量级、高性能的PHP框架,旨在简化开发过程,提供一套简洁高效的开发模式。下面是关于TP5的框架架构、使用场景以及底层原理的详细介绍。框架架构核心组件TP5的核心组件包括:入口文件:通常命名为index.php或public/index.php,负责初始化环境和引导框架的启动。配置文件:存放在config目录下的文件,用于配置应用的基本设置。路由配置:存放在r
- phpstudy用composer安装thinkphp5.1
dnpao
thinkphp5.1linuxphp
参考文章https://www.cnblogs.com/finalanddistance/p/8932042.html下载composer.phar下载地址:https://getcomposer.org/download/我是下载最新的路径phpstudy所使用是php7.2本地路径是D:\ProgramFiles\phpStudy\PHPTutorial\php\php-7.2.1-nts\p
- Fastadmin框架 lang任意文件读取漏洞攻略
故事与他645
前端javascript开发语言java网络安全web安全spring
漏洞介绍FastAdmin是一个免费开源的后台管理框架,基于ThinkPHP5.1框架开发而成,具有功能全面、界面美观、易于上手的特点。它提供了丰富的后台管理功能模块,包括权限管理、数据库管理、文件管理、图表统计等,可以帮助开发者快速搭建起一个稳定可靠的后台管理系统。其lang存在任意文件读取漏洞,未授权攻击者可以利用其读取网站配置文件等敏感信息。「Fofa」body="/assets/js/re
- 常见框架漏洞:Thinkphp(TP)篇
与神明画鸭
Thinkphptp漏洞
简介ThinkPHP(简称TP)是一款流行的国产开源PHP框架,遵循MVC(Model-View-Controller)设计模式,以简洁、高效、灵活著称,广泛应用于国内中小型Web项目开发。Thinkphp5x远程命令执行及getshell原理rce过程打开网站?s=/Index/\think\app/invokefunction&function=call_user_func_array&var
- thinkphp5模型查询数据库,查出来的字段直接修改成另外的名字
知码客
个人随笔thinkphp5php开发
在ThinkPHP5中,如果你希望在查询数据库时将返回的字段名直接修改为其他名称,可以通过以下几种方式实现:方法1:使用field方法指定字段别名在查询时通过field方法直接为字段指定别名(使用AS关键字)。示例代码://使用Db类查询$result=Db::name('user')->field('idASuser_id,nameASfull_name')->select();//使用模型查询
- 基于thinkphp5小区物业管理系统设计与实现(源码+lw+部署文档+讲解等)
阿逸学长
#java毕设精选案例开发语言毕设phpjava
基于thinkphp5小区物业管理系统设计与实现(源码+lw+部署文档+讲解等)文章目录基于thinkphp5小区物业管理系统设计与实现(源码+lw+部署文档+讲解等)引言项目概述功能介绍系统管理员:社区业主:技术栈功能截图示例代码数据库操作示例源码获取引言博主介绍:✌专注于Java技术领域和学生毕业项目实战,欢迎大家交流✌主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、
- php后端分页_thinkphp5框架前后端分离项目实现分页功能的方法分析
淡定男
php后端分页
本文实例讲述了thinkphp5框架前后端分离项目实现分页功能的方法。分享给大家供大家参考,具体如下:方法一利用tp5提供的paginate方法实现自动分页参数page第几页,paginate分页方法会自动获取size每页数量代码/***Notes:消费记录*Date:2019/6/25*Time:15:43*@paramRequest$request*@return\think\response
- ThinkPHP中使用MongoDB的union操作
原野-
php查看mongo集合的索引
MongoDB的union操作是什么。Union类似于SQL中的UNIONALL,可以将多个查询结果合并,并去除重复文档;使用ThinkPHP5或更高版本,通常会通过MongoDB的驱动或者第三方库来操作。不过,标准的MongoDB驱动可能不直接支持union操作,所以需要构造多个查询,分别执行然后合并结果检查MongoDB版本:确保使用的MongoDB版本支持union操作(MongoDB3.6
- THINKPHP5获取当前页面URL信息
向宇it
#thinkphpthinkphp域名
想要获取当前页面的url信息,可以借助thinkphp自带的request类来获取当前的url信息使用\think\Request类$request=Request::instance();或者使用自带的助手函数$request=request();$request=Request::instance();//获取当前域名echo'domain:'.$request->domain().'';//
- UNIAPP前端配合thinkphp5后端通过高德API获取当前城市天气预报
知码客
Uniappuni-app前端小程序知码客vue.js
如何通过UniApp前端项目与ThinkPHP5后端结合高德天气API获取天气预报信息。我们将分为前端和后端两部分进行实现。以下是一个完整的代码.一、项目结构project/├──frontend/(UniApp项目)│├──pages/││└──weather/││├──index.vue├──backend/(ThinkPHP5项目)│├──application/││├──controlle
- thinkphp5.1使用redis并使用
❀想容
thinkphp5PHP
创建一个redis类'172.21.20.13',//'port'=>'6379',//'timeout'=>'0',//'retry'=>'0',//'readTimeout'=>'0',//'auth'=>'ZJ1X8fZRuQndScDF7rTW'//);private$redis=array('host'=>'127.0.0.1','port'=>'6379','timeout'=>'0'
- thinkphp5.0配置Redis
denglansui3484
数据库php
官方文档就缓存的配置如下:$options=[//缓存类型为File'type'=>'File',//缓存有效期为永久有效'expire'=>0,//缓存前缀'prefix'=>'think',//指定缓存目录'path'=>APP_PATH.'runtime/cache/',];Cache::connect($options);看着让人不明所以,也不知道在哪配置,经过研究,应在applicati
- ThinkPHP接入PayPal支付
ETO_冬
thinkphpPayPal
ThinkPHP5接入PayPal支付,PayPal的流程是服务器请求Paypal的接口下单(需要传订单id/支付成功的重定向地址/支付失败的重定向地址),接会返回一个支付地址,项目服务器把地址返给用户,用户打开链接登录Paypal完成付款,然后Paypal给重定向到指定地址。在paypal官网开通商户号,设置通知地址。开通沙箱模式用于测试,后台会给沙箱模式生成商户账号和用户账号,请注意区分。申请
- 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独立出来,数据持