- test dbtest-02-Liquibase 是一个数据库变更管理工具
老马啸西风
test数据库appiumunittesting单元测试junit
拓展阅读DbUnit-01-数据库测试工具入门介绍databasetool-01-flyway数据库迁移工具介绍什么是Liquibase?Liquibase是一种开源的数据库架构变更管理解决方案,它使你能够轻松地管理数据库变更的修订版本。Liquibase使得参与应用程序发布流程的任何人都能够:在发布数据库时消除错误和延迟。针对特定版本部署和回滚变更,无需了解已经部署了什么。将数据库和应用程序变更
- 浅谈常用的测试框架
haidi8
面试专题junit单元测试java
文章目录1.Junit的使用1.1.Junit是什么1.2.Junit能做什么1.3.Junit的用法1.4单元测试小结1.5Unit4新断言-Hamcrest的常用方法1.5.1.字符相关匹配符1.5.2.一般匹配符1.5.3.数值相关匹配符1.5.4.集合相关匹配符1.6Unit4新断言-Hamcrest的常用方法2.Stub(桩)的使用3.dbunit的使用4.EasyMock的使用-测试业
- Oracle + dbunit AmbiguousTableNameException 解决
duenboa
--Unitils加载元数据SELECTNULLAStable_cat,o.ownerAStable_schem,o.object_nameAStable_name,o.object_typeAStable_type,NULLASremarksFROMall_objectsoWHEREo.ownerLIKE'%'ESCAPE'/'ANDo.object_nameLIKE'%'ESCAPE'/'AN
- Spring-test-DbUnit
沧海月明猪有泪
现象描述当一个实例下存在多个数据库,而且这个数据库中存在相同名称的表,Dbunit会报一个不能区分是哪个表的错误原因在没有指定Schema的情况下,DbUnit会默认扫描整个实例。解决指定一个Schema@ConfigurationpublicclassDbUnitConfig{@Bean("dbUnitConnection")publicDatabaseDataSourceConnectionF
- C++如何用OpenCV中实现图像的边缘检测和轮廓提取?
蜗牛的信仰
Opencvopencv人工智能计算机视觉c++
最近有个项目需要做细孔定位和孔距测量,需要做边缘检测和轮廓提取,先看初步效果图:主要实现代码:intMainWindow::Test(){//2.9单个像素长度um5倍doubledbUnit=2.9/(1000*5);//定义显示窗口namedWindow("src",WINDOW_NORMAL|WINDOW_KEEPRATIO);namedWindow("threshold",WINDOW_N
- java使用jUnit,jMockit,dbunit做DAO层单元测试方法
iameyama
Djunit
第一步:准备数据先在MySQL数据库中填写测试数据和期望数据,然后导出到xml文件中。全表导出:DBUnitHelper.exportTable("t_dp_content_02001",TEST_DATA_FILE);条件查询导出:DBUnitHelper.exportQueryTable("t_dp_content_02001","select*fromt_dp_content_02001wh
- 【已解决】使用dbunit在spring boot项目中进行dao层测试时报错org.dbunit.database.AmbiguousTableNameException: USER原因以及解决方法
FFFPAG
编程时遇到的BUG数据库springbootmysql
原因在数据库中存在两个同名的数据表,同名->不区分大小写的同名,则user和USER也是同名的,特别的是这两个同名数据表可能是存在本地中两个不同的数据库中。解决方法重命名你当前项目的数据表,使其不与数据库中其他数据表重名,如user命名为t_user。删除其他数据库中的重名数据表,使你当前数据表命名唯一。(这是我使用的解决方法)假如在连接数据库时未指定到哪个具体的schema,那么就在数据库指定s
- spring service层单元测试
二 黑
spring单元测试java
service层测试较简单,目前大多数测试主要是针对public方法进行的。依据测试方法划分,可以分为两种:基于mock的隔离测试和基于dbunit的普通测试。mock隔离测试配置pom.xmljunitjunit4.12org.mockitomockito-all1.10.19测试原理隔离测试主要通过@Mock和@InjectMocks两个注解来实现模拟与被模拟。@Mock:模拟出一个Mock对
- 使用MongoDB和Spring数据进行集成测试
欧阳冉冉
集成测试是企业发展中经常被忽视的领域。这主要是由于为集成测试设置必要的基础架构的相关复杂性。对于由数据库支持的应用程序,为集成测试设置数据库,并且一旦测试完成(例如,数据文件,模式等),就需要相当复杂和耗时,以确保测试的可重复性。虽然已经有许多工具(例如DBUnit)和机制(例如测试后回滚)来辅助这一点,但是固有的复杂性和问题总是存在的。但是如果你使用MongoDB,有一个很酷和容易的方法来做你的
- 使用 Spring + Mockito+PowerMock +spring-test-dbunit+hsqldb 进行单元测试可实现100%覆盖率
kris1985
junitjava
使用Mockito比easyMock更简单使用PowerMock可模拟静态、私有方法使用spring-test-dbunit可以实现注解方式导入xml到数据库,为数据库提供测试数据如:@DatabaseSetup @DatabaseTearDown使用hsqldb内置数据库,不会导致数据被误删或其它误操作后导致单元测试跑不过。具体实现1、maven依赖junitjunit4.11testorg.s
- Easymock & DbUnit 入门介绍
iteye_5425
Programing
下面内容是昨天应甲方要求给项目组做的Easymock和DbUnit工具入门介绍及实践方面交流的文字部分。贴在这里一方面作以记录,另一方面为也有此需要的兄弟提供些素材。(我也参考&引用了不少,呵呵时间紧。)单元测试与mock测试方法单元测试是对应用中的某一个模块(class)的功能(method)进行验证。在单元测试中,我们常遇到的问题是应用中其它的协同模块尚未开发完成,或者被测试模块需要和一些不容
- python 使用pymssql 连接MSSQL数据库(带端口)
linkyou
数据库pythonsqlexceptiondatabaseuser
知识点:如果连接数据库不使用默认端口,需要在连接host地址上加上端口如cacelbert01.mysql.alibabalabs.com:3306#coding=gbk###############################################################Copyright(C),2009-2010,aliyun#FileName:dbunit.py#Aut
- python 使用pymssql 连接MSSQL数据库(带端口)
iteye_3941
知识点:如果连接数据库不使用默认端口,需要在连接host地址上加上端口如cacelbert01.mysql.alibabalabs.com:3306#coding=gbk###############################################################Copyright(C),2009-2010,aliyun#FileName:dbunit.py#Aut
- junit/spring-test/spring-test-dbunit/dbunit集成数据库单元测试
weixin_33795743
DAL层的测试核心目标:1、表结构是否是预期;2、SQL逻辑是否正确;3、各类配置、代码是否有遗漏、且是否符合预期;各技术框架选取原因Junit:不用说了,标准的测试框架;spring-test:用spring的IOC容器环境,以及各种框架和spring集成的便利;DBunit:数据库数据透明化,查询数据不受数据库数据影响;spring-test-dbunit:提供dbunit注解方式,把相关的资
- JUnit学习笔记17---对数据库应用程序进行单元测试1
Hai Liang Wang
Unit-testingdatabaseapplications无论软件开发规模,依赖关系都是软件开发的关键问题……去除程序中的重复部分,也就去除了依赖性。——KentBeck本章内容用mockobjects在隔离数据库的情况下进行单元测试用Cactus和DbUnit进行集成测试改进集成测试的性能本章的目的就是告诉我们,不仅对数据库访问代码进行单元测试是可行的,而且还有很多的解决方案,在探究完对数
- 基于Spring的单元测试框架搭建及分布式数据源单元测试
aaronjiu_00
Java基础
在Space1stApps的项目中,我们使用了基于Spring的单元测试,并结合DBUnit对数据库应用程序做单元测试。其中,数据源我们使用了Oracle、MySql数据库,Oracle数据源只有一个数据库,而MySQL数据源是一个由多台MySQL数据库组成的分布式多数据源。对于单数据源SingleDataSource的单元测试用例,如果你需要在测试用例运行之前准备一些种子数据,那么,你只需要简单
- 在Spring环境下结合TestNG使用DbUnit
rain1999
Testing
转自http://www.blogjava.net/fanscial/archive/2010/09/14/26175.html#331978DbUnit是一个可以让我们在测试开始前初始化我们的数据库,例如准备我们的数据,然后在测试结束后也可以回滚我们的数据库(不是自动进行的,需要手工编码),dbUnit的结构基于Jnit,简单的使用必须要继承DatabaseTestCase类,但是我们可以使用编
- 用DbUnit进行数据库集成测试 (Setup, Teardown)
yukang116
DbUnit是测试数据库的利器,不过要想弄明白还是需要一番研究。好在它的源代码不多,文档也还算全。我就在此做一个总结吧。DbUnit.NET是DbUnit的.NET版,不过只推出了alpha版,而且自从06年以后就不再更新了。StackOverflow上有一个帖子,提出了一些替代方案。现在的DbUnit要求在测试时继承DBTestCase,而不是之前的DatabaseTestCase(前者继承自后
- 在SSH中增加JUNIT4单元测试
陈字文
Spring相关
首先,需要将UNITILS相关的jar包导入到系统的依赖jar包文件lib中,相关的jar文件如下:dbunit-2.4.8.jarhamcrest-all-1.3.0RC2.jarhamcrest-library-1.1.jarhtmlunit-2.8.jarhtmlunit-core-js-2.8.jarhttpclient-4.0.2.jarhttpcore-4.0.1.jarhttpmim
- Unitils介绍(一)
hu_hu_hu
关于Unitils,功能比较多,也比较复杂。资料比较少,官方文档写的还不是很明白,不通俗易懂,可能对我这个对J2EE,spring,hibernate等不了解的原因吧。言归正传,我这里翻译带自己的一点理解讲一下Unitils。Unitils是一种开源库,目的是使单体测试简单和可维护。Unitils是建立在已经存在的库。如DBunit和EasyMock,同时集成JUnit和TestNG。Unitil
- 终极解决dbunit使用中产生的AmbiguousTableNameException错误
fengww629
dbunit
近来很烦,为公司开发的项目中做一个工具,以配合公司的项目管理。该工具具体的功能,主要是用于导入导出数据,并用于系统安装或者升级补丁。我主要是使用了dbunit来实现,但在使用的过程中遇到了一个很难搞的问题,就是导入数据时有某些版本或者复杂的数据库环境下会报AmbiguousTableNameException的错误。上网查找资料,却发现资料少得可怜,搜索AmbiguousTableNameExce
- dbunit之org.dbunit.dataset.DataSetException: java.net.MalformedURLException解决方法
传a奇
单元测试
一、问题定位在使用dbunit做DAO的单元测试时,抛出了一个org.dbunit.dataset.DataSetException:java.net.MalformedURLException异常,如下图,可以看到问题出现在我写的TestDbUnit的49行,再看源代码第49行是这一句IDatasetds=newFlatXmlDataSet(file)。但实际出现问题的是file对象中的Test
- 使用dbunit和system-rules测试代码
lyuharvey
2019独角兽企业重金招聘Python工程师标准>>>最近项目在搞batch的测试。在进行ut测试时候,想将dbunit集成到测试中。发现最新的2.5.3版本已经集成了从excel中读取文件,并且进行验证。所以自己做成了一个测试工程,传到osc的码云上。特点:使用excel来进行db数据的导入,并且进行数据验证。因为待测试代码中存在system.exit函数,使用了system-rules框架来进
- 关于dbunit报Duplicate entry '????' for key 'xxx'错误的问题
iteye_3055
最近在Linux下跑一个原来在window下能正常运行的程序时,在进行单元测试时dbunit在将xml中数据导入数据库的过程中报:Duplicateentry'????'forkey'xxx'错误,我最初怀疑是文件编码的问题,但是经过一翻检查发再并非是xml文件的编码有问题,而是mysql数据库的编码出了问明。过去在windows下安装mysql时会有一个完整的配置向导,其中一个环节是配置mysq
- UNITILS 测试框架
乔木人
testUNITILSjava
Unitils(http://www.unitils.org/summary.html)这个Java开源类包的目的是让单元测试变得更加容易和可维护。Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合。支持数据库测试,支持利用mock对象进行测试并提供与Spring和Hibernate相集成。Unitils设计成以一种高度可配置和松散偶合的方式来添加这些服务
- 干货:Dao单元测试项目实战
灿若繁星
单元测试
Dao单元测试技术方案:H2+spring-test+spring-test-dbunit+testng一.*技术方案的选择*H2:内存数据库,支持标准SQL,相当于把数据库本地化,可以避免对测试环境的依赖,也可以提升单测的速度。spring-test:提供了@DirtiesContexAbstractTestNGSpringContextTests等诸多注释和基类,可以用来简化单元测试。spri
- DBUnit使用介绍
a7412605567
一、DbUnit设计理念熟悉单元测试的开发人员都知道,在对数据库进行单元测试时候,通常采用的方案有运用模拟对象(mockobjects)和stubs两种。通过隔离关联的数据库访问类,比如JDBC的相关操作类,来达到对数据库操作的模拟测试。然而某些特殊的系统,比如利用了EJB的CMP(container-managedpersistence)的系统,数据库的访问对象是在最底层而且很隐蔽的,那么这两种
- java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp是因为时间字段里有'0000-00-00 00:00:00‘这种格式的日期导致的
程序员最后都要送外卖
Exceptioninthread"main"org.dbunit.dataset.DataSetException:java.sql.SQLException:Value'0000-00-0000:00:00'cannotberepresentedasjava.sql.Timestamp atorg.dbunit.database.ForwardOnlyResultSetTable.getV
- 自动化组件测试
博文视点
软件工程
自动化组件测试“组件测试”或“子系统测试”验证系统的各个部分,可能需要安装整个系统或某些外部依赖关系,如数据库、文件系统或网络终端等。这些测试验证组件间的交互能产生预期的组合行为。典型的组件测试需要底层数据库支持,甚至可能跨越架构边界。因为每个测试用例执行的代码量更大,每个测试的代码覆盖率也更大,所以这些测试一般比单元测试执行的时间长。代码清单6-3展示了一个组件测试的例子,它利用DbUnit框架
- 使用dbunit出现org.dbunit.database.AmbiguousTableNameException异常
zjxkeven
项目测试—单元测试
如果还不好用,确认Oracle帐户没有DBA权限。如果有,去掉dba权限。因为DBUnit测试Oracle数据库时,帐户最好不要拥有DBA权限,否则会出现org.dbunit.database.AmbiguousTableNameException:COUNTRIES错误。如果帐户必须具备DBA权限,那么就需要在执行newDatabaseConnection时,明确给定SCHEMA(名称必须大写)
- 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独立出来,数据持