- c# list排序的三种实现方式
CHCH998
c#排序LIS实现list
本文转载自:https://www.cnblogs.com/bradwarden/archive/2012/06/19/2554854.html作者:bradwarden转载请注明该声明。用了一段时间的gridview,对gridview实现的排序功能比较好奇,而且利用C#自带的排序方法只能对某一个字段进行排序,今天demo了一下,总结了三种对list排序的方法,并实现动态传递字段名对list进行
- 不同hive集群中基于表的数据一致性比对
AA赵师傅
hadoop数据管理hive数据验证数据迁移hadoop
前阵子博主遇到一个需求,因对hadoop集群进行数据迁移,数据迁移完毕后进行两个hive库的数据一致性的比对,不仅对源表数据进行比对,而且要同时使用两个集群加工相同数据,对加工后的数据进行数据一致性比对。博主已知的数据迁移方法有两种,第一种就是hadoopdistcp功能来进行集群间数据的复制,那么基本就不用做源表的数据验证了,集群间数据复制失败会报错提示。第二种方法就是数据的导入导出了,把原集群
- Hadoop、Hive、Hbase集群间的数据迁移
这个操蛋的人生!!!
一、hadoop集群间拷贝数据:迁移之前需要把两个集群的所有节点都互通/etc/hosts文件(重要,包括各个数据节点)两个集群版本不相同hadoopdistcphftp://192.168.57.73:50070/hive3/20171008/hive3/如果两个集群的版本相同,则可以使用hdfs协议,命令如下:hadoopdistcphdfs://namenodeip:9000/foohdfs
- Hive面试题汇总
大数据侠客
hive相关问题汇总及解决hivehadoop数据仓库面试
Hive定义Hive是建立在Hadoop上的数据仓库基础构架。可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种
- Hive之数据迁移方案(实测)
南风知我意丿
Hivehivehadoophdfs
文章目录Hive的迁移涉及两个技术点:1.仅迁移元数据2.元数据及Hive数据全量迁移2.1全表迁移2.1.1旧集群2.1.2新集群2.2仅部分分区迁移(主要步骤)2.1.1旧集群2.1.2新集群2.3beeline连接hive并进行数据迁移Hive的迁移涉及两个技术点:1.仅迁移元数据参考:网易元数据管理-hive元数据迁移与合并2.元数据及Hive数据全量迁移主要流程1.将旧集群的hive数据
- 【原创】运维基础之OpenResty(Nginx+Lua)+Kafka
weixin_30293079
大数据运维lua
使用docker部署1下载#wgethttps://github.com/doujiang24/lua-resty-kafka/archive/v0.06.tar.gz#tarxvfv0.06.tar.gz2准备配置文件testkafka.conf#vitestkafka.conflua_package_path"/usr/local/openresty/lualib/resty/kafka/?.
- Hive架构及搭建方式
西北偏北up
hive
Hive架构及搭建方式[TOC]前言本文档基于hive3.1.2编写hive的基础知识基本架构整个hive由hiveserver2和hive客户端组成hive客户端有三种,beeline、使用jdbc链接hiveserver、或使用hiveCLI(这个已经过时,hive官方已经不推荐,推荐beeline)hiveserver本身由hiveserver2和metastore组成metastore是h
- hive数据类型
qzWsong
hive
数字类型TINYINT(1字节整数)SMALLINT(2字节整数)INT/INTEGER(4字节整数)BIGINT(8字节整数)FLOAT(4字节浮点数)DOUBLE(8字节双精度浮点数)示例:createtablet_test(astring,bint,cbigint,dfloat,edouble,ftinyint,gsmallint)时间类型TIMESTAMP(时间戳)(包含年月日时分秒毫秒的
- hive数据操作,导入导出
qzWsong
hive
数据导入导出将数据文件导入hive的表方式1:导入数据的一种方式:手动用hdfs命令,将文件放入表目录;方式2:在hive的交互式shell中用hive命令来导入本地数据到表目录hive>loaddatalocalinpath'/root/order.data.2'intotablet_order;方式3:用hive命令导入hdfs中的数据文件到表目录hive>loaddatainpath'/ac
- 【大数据入门核心技术-Hive】(十六)hive表加载csv格式数据或者json格式数据
forest_long
大数据技术入门到21天通关大数据hivehadoop开发语言后端数据仓库
一、环境准备hive安装部署参考:【大数据入门核心技术-Hive】(三)Hive3.1.2非高可用集群搭建【大数据入门核心技术-Hive】(四)Hive3.1.2高可用集群搭建二、hive加载Json格式数据1、数据准备vistu.json[{"id":111,"name":"name111"},{"id":222,"name":"name22"}]上传到hdfshadoopfs-putstu.j
- CDP中的Hive3之Apache Hive3特性
对许
#Hive#Sparkhivecdp
CDP中的Hive3之ApacheHive3特性1、ApacheHive3特性2、Hive不支持的接口和功能3、HiveonTez简介4、ApacheHive3架构概述CDP中采用的是ApacheHive3版本,相比Hive1/2,该版本在事务和安全性等方面有重大改进,了解这些版本之间的主要差异对于SQL用户至关重要,包括使用ApacheSpark和ApacheImpala的用户1、ApacheH
- Hadoop 与 Spark:大数据处理的比较
王子良.
大数据经验分享hadoopspark大数据
欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Fli
- Hive关于数据表的增删改(内部表、外部表、分区表、分桶表 & 数据类型、分隔符类型)
黄饱饱_bao
Hivehive数据分析
建表基本语句格式CREATE[external]TABLEifnotexistsstudent#默认建立内部表,加上external则是建立外部表(idintCOMMENT'学号',snamestringCOMMENT'用户名',ageintCOMMENT'年龄')#字段名称,字段类型,字段描述信息COMMENT'记录学生学号'#表的描述信息PARTITIONBY(departmentstring
- Hive(11):Transactional Tables事务表
不死鸟.亚历山大.狼崽子
hivehivehadoop数据仓库
1Hive事务背景知识Hive本身从设计之初时,就是不支持事务的,因为Hive的核心目标是将已经存在的结构化数据文件映射成为表,然后提供基于表的SQL分析处理,是一款面向分析的工具。且映射的数据通常存储于HDFS上,而HDFS是不支持随机修改文件数据的。这个定位就意味着在早期的Hive的SQL语法中是没有update,delete操作的,也就没有所谓的事务支持了,因为都是select查询分析操作。
- Hive建表时开启事务机制导致insert失败
大数据学习与分享
HadoopHive大数据hivehadoop
建表语句:createtableA(table_codestring,data_dtstring,update_dtstring)clusteredby(table_code)into1bucketsrowformatdelimitedfieldsterminatedby'\033'storedasorc--orc格式tablproperties('transactional'='true');执
- 【YashanDB知识库】归档日志清理
数据库
本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7281311.html?templateId=171...问题:按照官方文档提供的清理归档日志三种方式,手动删除归档日志文件返回succeed后,发现归档日志文件仍然存在原因:按照Yashan的默认配置,如果archivelog没有备份,没有同步到备机时,归档日志是不能删除的。因此考
- 基于MRS-Hudi构建数据湖的典型应用场景介绍
华为云技术精粹
云计算华为云
一、传统数据湖存在的问题与挑战传统数据湖解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化。虽然能够在海量批处理场景中取得不错的效果,但依然存在如下现状问题:问题一:不支持事务由于传统大数据方案不支持事务,有可能会读到未写完成的数据,造成数据统计错误。为了规避该问题,通常控制读写任务顺序调用,在保证写
- hvie SQL优化之where子句过滤模式
三生暮雨渡瀟瀟
hive调优hive
本篇文章来源于《Hive性能调优实现》。在HiveSQL里面经常用到的过滤方法就是使用where子句,例如:explainselect*fromstudent_tb_seqwheres_age=19ands_namelike'%红%'ands_scorein(100,50,22);where子句在执行计划中以filter操作表示,代码如下:STAGEPLANS:Stage:Stage-1MapRe
- git 常用命令 git archive
张紫娃
GITgit
gitarchive是Git中用于创建一个包含指定提交或分支中所有文件的归档文件(如.tar或.zip)的命令。这个命令非常适合用于分发项目快照、备份代码库或导出特定版本的文件。gitarchive--format=zip--output=project.zipHEAD创建整个项目的.zip归档gitarchive--format=zip--output=project.zipHEAD-v-v查看
- Android Studio 找不到 uploadArchives 入口
程思扬
Android记录androidstudioandroidide
在4.2之前版本的AndroidStudio中想要module打包arr,上传Maven我们只需要在对应module的build.gradle文件顶部添加applyplugin:'maven'然后每一次修改记得要修改版本号,相同版本号提交失败,是不会覆盖的defaultConfig{......versionName"1.0.0"//版本号...</
- 基于飞腾平台的Hive的安装配置
后端hive大数据数据库运维
【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧本文分享至飞腾开发者平台《飞腾平台Hive3.1.2
- scrapy学习之爬虫练习平台爬取
LLLibra146
爬虫python
本文章首发于个人博客,链接为:https://blog.d77.xyz/archives/35dbd7c9.html前言为了练习Scrapy,找了一个爬虫练习平台,网址为:https://scrape.center/,目前爬取了前十个比较简单的网站,在此感谢平台作者提供的练习平台。环境搭建开始爬取前,首先要先把环境搭建起来,Pycharm新建项目learnscrapy和对应的虚拟环境,安装好Scr
- Docker+gitlab+jenkins实现项目自动部署
Java小海.
springjava后端
一、Docker安装(CentOS)1、准备工作系统要求以下为官网原文ToinstallDockerEngine,youneedamaintainedversionofCentOS7or8.Archivedversionsaren’tsupportedortested.Thecentos-extrasrepositorymustbeenabled.Thisrepositoryisenabledby
- 在VS-Code配置Anaconda环境
m0_47563195
配置pythonconda编辑器
准备工作:一台没有安装Python,Anaconda及VS-Code的window10系统的电脑第一步:安装Anaconda由于在官网下载安装包比较慢,所以可以选择在清华大学开源软件镜像站进行下载(Indexof/anaconda/archive/|清华大学开源软件镜像站|TsinghuaOpenSourceMirror),具体安装过程及环境配置可参考文章Anaconda环境与Python的配置方
- hive电影数据分析系统 Springboot协同过滤-余弦函数推荐系统 爬虫2万+数据 大屏数据展示 + [手把手视频教程 和 开发文档]
QQ-1305637939
毕业设计大数据毕设计算机毕业设计hivespringboot爬虫
hive电影数据分析Springboot协同过滤-余弦函数推荐系统爬虫2万+数据大屏数据展示+[手把手视频教程和开发文档]【功能介绍】1.java爬取【豆瓣电影】网站中电影数据,保存为data.csv文件,数据量2万+2.data.csv上传到hadoop集群环境3.MR数据清洗data.csv4.Hive汇总处理,将Hive处理的结果数据保存到本地Mysql数据库中5.Springboot+Vu
- 360校招——最后赢家(C++)
c++
⭐文章链接:www.mengyingjie.com/archives/39/⭐最后赢家时间限制:C/C++语言1000MS;其他语言3000MS内存限制:C/C++语言65536KB;其他语言589824KB题目描述:最强的不一定是最后的赢家。某赛事有n名选手参加,但是不同于其他的比赛,本比赛采取的是擂台赛的形式,n名选手排成一排,每次队伍的第一位和第二位选手进行比赛,输的一方会排到队尾。当某位选
- 大数据学习(36)- Hive和YARN
viperrrrrrr
大数据学习hive
&&大数据学习&&系列专栏:哲学语录:承认自己的无知,乃是开启智慧的大门如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦当客户端提交SQL作业到HiveServer2时,HiveServer2会根据用户提交的SQL作业及数据库中现有的元数据信息生成一份可供计算引擎执行的计划。每个执行计划对应若干MapReduce作业,Hive会将所有的MapReduce作业都提交到YARN中。Y
- hive-04-Hive函数大全
九师兄
大数据-hivehive函数
一、关系运算:1.等值比较:=语法:A=B操作类型:所有基本类型描述:如果表达式A与表达式B相等,则为TRUE;否则为FALSE举例:hive>select1fromlxw_dualwhere1=1;12.不等值比较:B
- Hive PERCENTILE_APPROX 函数详解
_Magic
hivehadoop数据仓库
HivePERCENTILE_APPROX函数详解PERCENTILE_APPROX是Hive中一个重要的函数,用于近似计算数据的百分位数。本文介绍PERCENTILE_APPROX的原理、参数以及核心概念B值等信息。函数语法PERCENTILE_APPROX(expression,percentage[,B])expression:输入的数值列,通常是需要计算百分位数的字段。percentage
- Hive SQL 分组与连接操作详解
大数据深度洞察
Hive数据库hive大数据数据仓库sql
目录分组GroupBy语句1.案例实操Having语句1.having与where不同点2.案例实操Join语句等值Join1.案例实操表的别名1.好处2.案例实操内连接左外连接右外连接满外连接多表连接1.创建位置表2.导入数据3.多表连接查询笛卡尔集1.笛卡尔集会在下面条件下产生2.案例实操联合(union&unionall)1.union&unionall上下拼接2.案例实操分组GroupBy
- 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独立出来,数据持