- arcEngine开发之IMap、ILayer、IFeatureLayer和IFeatureClass关系
firepation
ArcEngine编程C#Engine
刚开时学习Engine开发时,对于这几个接口之间的关系总是理不清,因此写下这篇文章做个总结。是什么在engine开发中,我觉得使用过程中应该将每个接口对应到ArcMap中的具体事物中,这才能对它们有深刻的认识,那么,这几个接口代表的事物是什么呢?IMap这相对来说比较好理解,Map就是许多图层的集合,就像ArcMap中的MXD文档一样,可以包括许多图层Layer.ILayerLayer是图层对象,
- arcgis计算面到线的最短距离(c#,arcengine)
gis新秀
arcenginec#GISarcgis
首先是问题,问题如下。首先有一个面数据,一个线数据。如下现在我要获取每个面到线的最短距离,怎么做了?用arcgis一般的人还是很难会操作的(很熟练的就别论了)。现在如何简单快速的解决?,降级使用者的门槛?现在打开我们的程序。输入两个数据,点击计算,计算完成后结果就是这样了。是不是简单了很多,啊哈哈。源码如下:有需要的博客找我联系方式。滴滴
- ArcEngine10.2 VC++实现地图浏览基本功能
OrangePan
ArcObjectsVC++VC++ArcEngine10.2
1、创建一个mfc单文档程序(我这里叫MapEx),前面可以默认,高级功能中的“ActiveX控件(R)”必须要,在最后一步生成的类,基类选择CFormView。2、添加MapControl控件,点击窗体IDD_MAPEX_FORM,右键选择“插入ActiveX控件(X)”,选择EsriMapControl,确认。3,、加载地图,可以通过MapControl的属性页MapDocment来加载,也可
- VS2019+ArcEngine10.2+ArcMap10.2环境搭建
椰汁芒芒冰
其他
VS2019+ArcEngine10.2+ArcMap10.2环境搭建tps://www.pianshen.com/article/5195200233/
- C#+ ArcEngine 调用GP工具示例
吵吵人
记得添加引用:usingESRI.ArcGIS.Geoprocessing;……引用这部分少什么添加什么,很简单相交publicIFeatureClassIntersect2(IFeatureClassA,IFeatureClassB,stringname){Geoprocessorgeoprocessor=newGeoprocessor();geoprocessor.OverwriteOutpu
- VS2013/VS2015/VS2017下使用ArcEngine10.1/10.2
11wy11
ArcGISAEVS
背景ArcObjectsSDKforMicrosoft.NetFramework10.1或10.2在安装时,会检测VS2010或VS2012的安装路径,而有时因为其他项目使用限制而且不愿同时安装多个版本的VS,通过修改注册表方式实现安装具体步骤1.修改注册表首先打开注册表,window系统可以通过win+R,输入regedit后,回车打开注册表这里以2013为例找到计算机\HKEY_LOCAL_M
- ArcGIS Engine专题(1)之License许可统一管理类
xizhjxust_GIS
ArcEngine专题ArcEngineC#许可管理工具
ArcEngine/ArcObject二次开发的项目,在使用相关组件时都需要进行许可管初始化。许可初始化可以通过两种方式实现。目录一、手动拖拽许可控件LicenseControl二、通过IAoInitialize接口进行初始化(推荐)三、注
- ArcEngine 加载栅格影像图并建立金字塔
GIS_百度
C#gis
一般情况加载栅格影像图,但没建立金字塔,导致软件卡死~其实方法很简单,只需添加pRasterPyramid.BuildPyramid(-1,rstResamplingTypes.RSP_NearestNeighbor)即可。一、方法代码如下://////从文件夹中加载栅格数据的静态方法//////栅格文件的路径///返回加载的栅格IRasterpublicstaticvoidLoadRasterF
- ArcEngine加载栅格数据
HerryDong
ArcEngineArcEngine栅格数据
一直以来对栅格数据接触较少,曾经大二的时候用ERDAS做过监督分类和蓝藻提取,后来接触了GIS开发也就没再做过了,不过现在还是准备探索一下ArcEngine针对栅格数据的相关操作。既然数据是GIS的血液,那就从加载栅格数据开始吧。栅格数据大致分为两种形式进行存储:一种是以文件的形式存储,例如TIFF文件,另一种则是存储在地理数据库中。在ArcEngine中,IRasterWorkspace接口用于
- 读取dxf
小koala
将Cass导出的dxf导入ArcEngine二次开发的软件,将一些要素编码示例记录下来备忘。1、参考资料dxf参考手册解析dxf图形文件格式dxf文件分析2、点线注记图形编码示例以下组码取自ENTITIES(实体段),关于dxf数据结构请翻阅参考资料2.1点要素0//开头标识INSERT//点要素标识522F3302100AcDbEntity8GXYZ//Cass图层名6Continuous100
- ArcEngine添加指北针
HerryDong
ArcEngineArcEngine指北针
程序主界面如下图所示:主界面代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.W
- ArcEngine符号化——点符号选择器
HerryDong
ArcEngineArcEngine
1、前言前面的博客介绍了在ArcEngine中如何创建各类符号,但是回顾一下ArcMap中的操作,你肯定会想:一个一个创建符号实在是太过麻烦,如果有一个符号选择器供我们使用就好了。这篇博客就来介绍一下如何创建一个如下图所示的点符号选择器。2、符号样式文件对于ArcEngine来说,它是不能直接使用ArcMap中的符号库的,它能使用的是一种后缀名为*.ServerStyle的文件。以我的电脑为例,我
- ArcEngine编辑模块——批量删除要素
HerryDong
C#ArcEngineC#ArcEngine
1、前言在ArcEngine中,删除要素的方法有很多,你可以使用IFeatureCursor或ITable查询出部分要素然后依次删除。但这两个接口只能针对单个图层的要素进行删除,而在编辑状态下,我们可能一次选中了多个图层下的多个要素,这时候就得使用IFeature接口的Delete方法进行操作,下面给出实现代码。2、删除要素2.1、主界面代码usingESRI.ArcGIS.Controls;us
- ArcEngine中的空间参考操作代码
HerryDong
ArcEngineArcEngine
GIS中的坐标系一般分为地理坐标系和投影坐标系。地理坐标系就是用经纬度来表示位置,投影坐标系则是按照一定的数学规则,将球体投影到平面上,一般用X、Y表示位置,单位为米。若要进行投影转换,如果转换前和转换后的空间参考是基于同一参考椭球体,则可在ArcGIS中直接进行转换,如果转换前和转换后的空间参考基于不同的参考椭球体,则首先需要计算七参数,然后才能在ArcGIS中进行转换。下面是ArcEngine
- ArcEngine符号化——填充符号
HerryDong
ArcEngineArcEngine
1、前言这篇博客来介绍一下ArcEngine中的填充符号。填充符号一般有简单填充、点填充、线填充等等,有一类特殊的点密度填充将在下一篇博客介绍。2、常用的填充符号2.1、简单填充符号2.2、点填充符号2.3、线填充符号2.4、叠加填充符号2.5、图片填充符号2.6、渐变填充符号3、实现代码usingSystem;usingSystem.Windows.Forms;usingESRI.ArcGIS.
- arcgis 线上到指定点的距离最短的一点/QueryPointAndDistance/ReturnNearestPoint
Prince_Treasure
ArcGISC#
在ArcEngine中可以通过两种方式实现:第一种:由ICurve和IPolyline接口的QueryPointAndDistance方法实现。该方法中有七个参数,下面对这些参数进行详细说明:1.extension参数:esriSegmentExtension枚举类型,用于指定曲线段延伸的方式,主要有esriNoExtension(曲线段不做延伸)、esriExtendTangents等。延伸方式
- C# AO/AE The coordinates or measures are out of bounds
Prince_Treasure
c#
c#arcengine开发shape导入sde中图形缩小不显示问题,因为shape不存在domain问题,导入sde中会把shape默认的图形范围导入,导致地图显示超过domain范围就会无法绘制。IGeoDatasetpGeoDataset=pInFeatureClassasIGeoDataset;doublexMin;doublexMax;doubleyMin;doubleyMax;pGeoD
- C# ArcGIS HRESULT:0x80040228
Prince_Treasure
arcgisc#
ArcObjects或者ArcEngine的C#版本在读取shp文件的时候报错:HRESULT:0x80040228首先确保你的license可用,方法是新建一个winform程序,向界面拖入license控件,如果能过成功则表示license没问题,如果拖入就直接报错则表明license有问题,需要重新安装或者换个安装包。如果上面一步的license检查没有问题,在读取的时候报错HRESULT:
- 基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍
Prince_Treasure
ArcGISC#VS2012c#开发语言
一、开发环境开发环境为ArcGISEngine10.2与Visualstudio2010。在使用ArcEngine查询进行查询的时候主要使用三种查询接口IQueryFilter(属性查询)、ISpatialFilter(空间查询)、IQueryDef(多表查询)那么这三个接口的区别是什么呢?要求IQueryFilterISpatialFilterIQueryDef属性约束TrueTrueTrue空
- C#转Java心路历程
xiangshangdemayi
JAVAjavaC#心路历程经验对比
前言:因为目前gis圈里,搞b/s的基本后台都用的是java、c++,java占主流。不过c/s的主流还是C#,主要集中在ArcEngine、skyline、osgEarth上做二次开发。但我一直是做b/s的,虽然搞了三年的C#,还是准备转java。有句话说的好,做一件事,最好的时间就是十年前,或者现在。所以别犹豫,干就完了。接下来对比一下C#和java的不同之处吧:1、gettersetterC
- 【编程实践】VS调用ArcEngine开发出现的问题之ArcGIS version not specified. You must call RuntimeManager.
狮智先生
编程实践visualstudiocodevisualstudiowindows
问题描述:“System.InvalidOperationException”类型的未经处理的异常在ESRI.ArcGIS.AxControls.dll中发生其他信息:ArcGISversionnotspecified.YoumustcallRuntimeManager.BindbeforecreatinganyArcGIScomponents.解决方法:在[解决方案资源管理器]中,打开【Prog
- FME数据处理04:面自相交拓扑检查
小薛引路
FMEFME
在ArcGIS中仅提供了线要素的自相交拓扑检查,并未找到关于面要素自相交的相关表述;本文结合FME2019。列举了几种面自相交的情形,并介绍了FME中三个转换器及其设置方法。关于ArcEngine的拓扑检查接口,可以参见基于C#的ArcEngine二次开发22:要素拓扑检查_小薛引路的博客-CSDN博客https://blog.csdn.net/m1m2m3mmm/article/details/
- ArcEngine向量法等距扩展多边形
小koala
在开发项目中遇到生成界址点注记的功能需求,注记坐标的确定成为难点,打算用多边形扩展的方法确定注记的坐标,但AE的不提供多边形扩展(收缩)接口,与之相似的,缓冲的点不是与原多边形坐标一一对应。在网上找了多边形扩展算法,采用向量法。1、原理和步骤原理草图步骤:获取边向量(末-初),向量用坐标点存储;获取边向量的单位向量;确定指向新点方向:向量减法(末-初)、sin(向量积);获取斜率:新向量(指向新点
- arcengine栅格渲染(栅格重分类) IRasterClassifyColorRampRenderer
jack5s
ArcGIS二次开发ArcGIS二次开发栅格重分类栅格颜色渲染
ArcGIS中常用到栅格数据的颜色渲染,以及相应级别的label的显示privatevoidRasterView(IRasterLayerRasterLayer,doubleBreakPoint1,doubleBreakPoint2,doubleBreakPoint3,doubleBreakPoint4,doubleBreakPoint5){IRasterClassifyColorRampRend
- ArcGIS Engine 与 Visual Studio版本对照表
surpassLiang
地理信息arcgisarcgis开发c#
通过C#对于Arcgis的二次开发,需要VisualStudio版本需要与ArcGISEngine对应,VisualStudio版本的或高或低都不能使ArcObjectsSDKformicrosoft.Netframework安装成功。下面是各个版本的对照表。序号ArcEngine版本visualStudio版本Network版本110.2/10.21/10.222010的社区、专业版和旗舰版3.
- 基于ArcEngine二次开发的选择带橡皮筋平移工具
hsg77
GIS相关ArcGISEngine开发笔记
基于ArcEngine二次开发的选择带橡皮筋平移工具去掉了单击居中的功能主要采用了下面三个方法:ScreenDisplay.PanStart(this.startPoint)ScreenDisplay.PanMoveTo(movePoint);ScreenDisplay.PanStop();usingESRI.ArcGIS.Carto;usingESRI.ArcGIS.Controls;using
- ArcEngine二次开发实用函数13:根据百万图号计算中央子午线和带号
小薛引路
AE二次开发实用函数集c#linqjava
计算公式及示例:以I46G027096为例6度分带6度带号的计算方式为:46-30=16带对应的6度分带的中央子午线为:16*6-3=933度分带对应的3度带的计算则需根据不同的比例尺来计算软件设计软件界面:界面布局:标签Name图幅号textBox_bwth6度带号TextBox6dh6度中央子午线TextBox6zwx3度带号TextBox3dh3度中央子午线TextBox3zwx完整源码:u
- ArcEngine二次开发实用函数14:结果导出的shp文件
小薛引路
AE二次开发实用函数集arcgis
在进行矢量数据检查时,我们经常性的需要将数据导出为shp格式的文件;本节就着重介绍矢量图像导出shp格式的文件的一些细节和注意事项。1.创建工作空间注解1:在创建工作空间时,我们需要传递的参数是shp文件保存路径名称的目录部分;名称部分则是在创建图层的时候再给。可以通过System.IO.Path.GetDirectoryName()和System.IO.Path.GetFileName()两个方
- ArcEngine二次开发0——入门(下载 部署 组件学习)
蔺WIT
专业学习笔记GISArcEngineC#AE二次开发
折腾一下ArcGISEngine二次开发。目录1、开发环境配置2、部署一个ArcGISEngine应用程序3、ArcObject组件学习4、报错及解决4、其他1、开发环境配置参考:https://blog.csdn.net/H48662654/article/details/113384150(使用ArcEngine前,先要安装对应版本的ArcGISDesktop桌面版软件,同时,AE也有对应的V
- arcengine的一些例子实现
benbensheng
打开mxd文件OpenFileDialogaxMapControl1.LoadMxFile(pFileName);打开shp文件IWorkspaceFactorypWorkspaceFactory=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath,0);IFeatureWorkspacepFeatureWorkspace=new
- 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独立出来,数据持