- 2024年Presto【基础 01】简介+架构+数据源+数据模型(2),2024年最新一线互联网公司面经总结
2401_84264536
架构
学习路线:这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以点击这里获取一个人可以走的很快,但一群人才能走的更远!不
- Presto【基础 01】简介+架构+数据源+数据模型
2401_84254343
程序员架构
一个Catalog包含Schema和Connector。例如,配置JMX的Catalog,通过JXMConnector访问JXM信息。当执行一条SQL语句时,可以同时运行在多个Catalog。Presto处理table时,是通过表的完全限定(fully-qualified)名来找到Catalog。例如,一个表的权限定名是hive.test_data.test,则test是表名,test_data是
- 兼容 Trino Connector,扩展 Apache Doris 数据源接入能力|Lakehouse 使用手册
vvvae1234
apache
ApacheDoris内置支持包括Hive、Iceberg、Hudi、Paimon、LakeSoul、JDBC在内的多种Catalog,并为其提供原生高性能且稳定的访问能力,以满足与数据湖的集成需求。而随着ApacheDoris用户的增加,新的数据源连接需求也随之增加。因此,从3.0版本开始,ApacheDoris引入了TrinoConnector兼容框架。Trino/Presto作为业界较早应用
- 2024年大数据高频面试题(下篇)
猿与禅
Java架构师面试大数据面试scala即席查询分桶调度系统数据倾斜
文章目录Scala数据类型函数式编程闭包函数柯里化面向对象样例类对象与伴生对象特质(trait)模式匹配隐式转换即席查询KylinKylin特点Kylin工作原理核心算法Kylin总结Kylin的优点什么场景用KylinKylin的缺点Impala什么是ImpalaImpala为什么快FrontendBackendImpala总结:Presto什么是PrestoPresto的执行过程Presto总
- pyhton - PyHive
凌不了云
pythonpythonhive
简介PyHive是一组PythonDB-API和SQLAlchemy接口,可用于Presto和Hive。它为Python提供了一个与Presto和Hive进行交互的平台,使得数据分析师和工程师可以更方便地进行数据处理和分析。安装在安装PyHive之前,你需要确保已经安装以下软件:PipPythonJDK(JavaDevelopmentKit)Hive或Presto在安装完成上述软件之后,你可以使用
- k8s-pod 实战七 (PreStop 和 PostStart 详细分析)
清风 001
K8S-Pod实战rpc网络协议网络k8skubernetes容器云原生
PreStop和PostStart详细分析PreStopHookPreStopHook是在容器终止之前执行的操作。它通常用于执行一些清理任务或完成某些操作,以确保容器能够平稳关闭。例如,在数据库应用中,你可能希望在容器终止之前完成所有正在进行的事务。PostStartHookPostStartHook是在容器启动之后立即执行的操作。它通常用于在容器启动后执行一些初始化任务。例如,你可能希望在容器启
- 从零到一建设数据中台 - 关键技术汇总
我码玄黄
数据中台数据挖掘数据分析大数据
一、数据中台关键技术汇总语言框架:Java、Maven、SpringBoot数据分布式采集:Flume、Sqoop、kettle数据分布式存储:HadoopHDFS离线批处理计算:MapReduce、Spark、Flink实时流式计算:Storm/SparkStreaming、Flink批处理消息队列:Kafka查询分析:Hbase、Hive、ClickHouse、Presto搜索引擎:Elast
- 谈一谈数据虚拟化的技术核心和应用架构
Aloudata
DataFabric逻辑数据平台数据集成数据虚拟化
数据虚拟化(DataVirtualization)是对数据资源的抽象,通过屏蔽数据资源的存储位置和访问方式,能够将不同数据源、不同格式的数据资源,进行逻辑上的整合集成。这一技术方案与过去面对传统数仓的弊端,业界过去经常采取的方式Presto方案有一定相似,但存在明显差别。Presto的架构本质上是一个MPP的引擎,其架构导致绝大部分使用Presto的场景都是在ETL最末端的消费层,本身面向的是OL
- spring cloud gateway k8s优雅启停
luffy_1993
kubernetes容器云原生
通过配置readiness探针和preStophook,实现优雅启动和停止(滚动部署)1.k8s工作负载配置readinessProbe:httpGet:path:/datetimeport:8080scheme:HTTPinitialDelaySeconds:30timeoutSeconds:1periodSeconds:30successThreshold:1failureThreshold:
- 第 5 题:常见的浏览器内核有哪些?
Noxus丶SJ
什么是浏览器内核?浏览器内核也可以理解为排版引擎,主要由2部分组成,渲染引擎和JS引擎排版引擎主要是负责获取网页内容(HTML、XML、图像、CSS、JS)等信息进行解析、渲染网页,将网页的代码转换为看得到的页面浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同,常见的内核有Trident、Gecko、Webkit、Presto、Blink五种Trident内核代表作品是IE,俗
- presto内存配置逻辑梳理
lilyjoke
大数据presto
presto内存配置逻辑梳理Presto分了两块内存池:GENERAL_POOL和RESERVED_POOL,而RESERVED_POOL根据业务实际情况,我会禁用,所以这块内存不做分配和考虑。GENERAL_POOL中会分两类内存:usermemory和systemmemory。systemmemory用于input/output/exchangebuffers,存放实际读写的实际数据;user
- 回答网友问题之十一
DIGITALMAN
问题:我用Thea渲染器presto(MC)渲染的时候总是没法渲染出有色玻璃的投影和焦散,表现出来的投影都是一片黑灰色,把渲染设置里面的几个貌似相关的设置都打开了,还是没有效果,相比之下其他几个引擎都能比较好的渲染有色玻璃的投影以及焦散效果,就是渲染速度比不上Presto(MC),怎么才能让Presto(MC)也渲染出有色玻璃的真实投影和焦散呢?回答:TheaRender渲染器在同一框架内置了三类
- 【大数据面试题】006介绍一下Parquet存储格式的优势
Jiweilai1
一天一道面试题大数据sparkhadoop
一步一个脚印,一天一道面试题列式存储同一列的数据是同一种数据类型,所以压缩比例可以更高。同时一般查询使用时不会使用所有列,而是只用到几列,所以查询速度会更快压缩比例高因为是列式存储,所以可以对同一类型的一段做压缩,压缩比例高支持的平台和框架多在Hadoop,Spark,Presto,Python等都支持,所以Parquet文件可以在不同系统和语言通用。这是我觉得比较实在的优势
- 浏览器及浏览器内核的基本介绍
泡椒猪肝
前端
浏览器及浏览器内核的基本介绍一、浏览器二、编译器三、HTML四、标记一、浏览器五大主流浏览器1.IE浏览器,2.Chrome浏览(谷歌浏览器),3.FirFox(火狐浏览器)4.Safari浏览器(苹果浏览器),5.Opera浏览器(欧朋浏览器)。浏览器内核IEtridentChromewebkit/blinkfirefoxGeckoOperaprestoSafariwebkit简介IE浏览器:它
- 整理前端面试题(上)
强哥科技兴
1.常用那几种浏览器测试?有哪些内核(LayoutEngine)?(Q1)浏览器:IE,Chrome,FireFox,Safari,Opera。(Q2)内核:Trident,Gecko,Presto,Webkit。2.说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8以下)(Q1)行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-he
- presto获取上月月初和上月月末日期
sggnb
prestosql
因为工作中需要,研究了一下,有问题大家一起交流获取上月月末selectCAST((date_add('day',-day_of_month(current_date),current_date))ASVARCHAR);获取上月月初selectdate_trunc('month',(date_add('day',-day_of_month(current_date),current_date)));
- Thearender2渲染器学习笔记之六
DIGITALMAN
使用PRESTOMC渲染引擎,5分效果。没有调整好灯光位置,金属勺子完全爆掉了一点金属细节都没了,但你要看的是橙汁,哈哈。【前言】上一篇重点介绍了Thea的五大基本材质之一:BASIC材质及其相关属性。BASIC基础材质相当于其他渲染器的标准材质一样,主要用于模拟哑光和塑料,我们也可以用其反射和半透明模拟金属和SSS材质。这个材质效率很高,渲染速度相对较快。简单回顾就是下面这张图。点击该图,可看大
- 史上最全OLAP对比
只会写demo的程序猿
数仓sparkhadoop数据仓库
目录1.什么是OLAP2.OLAP引擎的常见操作3.OLAP分类MOLAP的优点和缺点ROLAP的优点和缺点4.并发能力与查询延迟对比5.执行模型对比5.OLAP引擎的主要特点5.2SparkSQL、FlinkSQL5.3Clickhouse5.4Elasticsearch5.5Presto5.6Impala5.7Doris5.8Druid5.9Kylin综上所述:1.什么是OLAPOLAP(On
- 【Iceberg学习一】什么是Iceberg?
周润发的弟弟
Iceberg学习
ApacheIceberg是一个面向大型分析数据集的开放表格格式。Iceberg为包括Spark、Trino、PrestoDB、Flink、Hive和Impala在内的计算引擎增加了表格功能,使用一种高性能的表格格式,其工作方式就像一个SQL表一样。用户体验Iceberg避免了不愉快的意外。模式演化功能正常运作,并不会无意中恢复已删除的数据。用户无需了解分区信息也能获得快速查询。模式演化支持添加、
- 在Java中使用redisTemplate操作缓存
SH的全栈笔记
背景在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条。但同时对查询速度的要求也比较高。这个数据库之前在没有使用Presto的情况下,使用的是Hive,使用Hive进行一个简单的查询,速度可能在几分钟。当然几分钟也并不完全是跑SQL的时间,这里面包含发请求,查询数据并且返回数据的时间的总和。但是即使这样,这样的速度明显不能满足交互式的查询需求。我们的下一个解决方案就是Pr
- Presto/Trino权威指南及官方设计文档解读
Caucher
官网地址:https://trino.io/docs/current/参阅书目《Trino:Thedefinitiveguide》开源社区博客地址:https://blog.starburstdata.com/Trino博客地址:https://trino.io/blog/作者均是presto创始人三位,因此这两份材料+2019年的presto论文(见我另一篇博客),是最权威的presto技术文档
- 整理前端面试题
强哥科技兴
1.常用那几种浏览器测试?有哪些内核(LayoutEngine)?(Q1)浏览器:IE,Chrome,FireFox,Safari,Opera。(Q2)内核:Trident,Gecko,Presto,Webkit。2.说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8以下)(Q1)行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-he
- 1.CDH集成Trino(PrestoSQL)
zhao_rock_2016
prestotrino
系列文章目录1.CDH集成Trino(PrestoSQL)2.1TrinoWindows开发环境搭建—组件篇2.2TrinoWindows开发环境搭建—源码修改篇3.1Trino二次开发-动态数据源管理-需求及源码解读13.2Trino二次开发-动态数据源管理-源码解读2
- Hive与PrestoSQL中的并列列转行
对许
#Hive#Prestohive
并列列转行1、背景描述2、Hive实现3、PrestoSQL实现1、背景描述通常我们在处理数据时,如果遇到一个字段存储多个值,常常需要把一行数据转换为多行数据,形成标准的结构化数据例如,将下面的两列数据并列转换为三行,使得code和name一一对应的idcodename1a、b、cA、B、C2、Hive实现使用Hive的lateralviewposexplode实现selectid,pos1,su
- 主流的浏览器内核种类?, 对前端的影响?
嚣张.miner
面试面试浏览器内核兼容性
什么是浏览器内核?1浏览器讷河可以理解为排版引擎,主要由渲染引擎和JS引擎.2.排版引擎主要是负责获取网页内容(HTML,XML,CSS,JS,图像)等信息进行解析,渲染网页,将网页的代码转换为看得见的页面2浏览器的内核的不同,对于网页的语法解释会有不同,所以渲染的效果也不相同,常见的内核有Trident,Gecko.,Webkit,Presto,'BlinkTrident内核:IE浏览器以Tri
- CSS 浏览器内核差异
fortunegrant
Trident:IE浏览器使用的内核Gecko:FireFox使用的内核Presto:目前Opera采用的内核Webkit:苹果的Safari浏览器和google的chrome使用的内核
- 数据湖技术Iceberg0.12预研文档
我去探险了
数据湖技术hivekafkabigdata
Iceberg0.12预研本次预研场景主要为kafka=>flinksql=>iceberg=>hive=>hdfs=>trino(presto)本次预研使用组件如下:名称版本描述flink1.12.1通过parcel包部署于cdh6.3.2中cdh6.3.2开源版本hive2.3.7包含cdh中(更换jar升级替换)hadoop3.0.0cdh原生版本presto2.591开源版本trino36
- 系统初始化(Windows)
阳光丶不错
取消休眠以管理员运行cmd$powercfg-hoffhiberfil.sys文件会自动消失移动hiberfil.sys文件[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\BackupRestore\FilesNotToBackup]\PowerManagement修改“\hiberfil.sys”→“d:\hiberfil.sys”,一共2处先禁
- Presto源码阅读——如何获取Hive中的Metadata(HMS+HDFS)
stiga-huang
Presto
Presto源码阅读——如何获取Hive中的Metadata(HMS+HDFS)本文的Metadata定义SQLonHadoop系统在执行一个query时所需要的Metadata主要有两部分Hive中的TableSchema信息和Partition信息,这部分从HMS(HiveMetaStore)中拿到HDFS中的文件信息(包括BlockLocation信息),这部分从HDFSNameNode中拿
- Impala元数据简介
stiga-huang
Impala
Impala元数据简介背景Impala是一个高性能的OLAP查询引擎,与其它SQL-on-Hadoop的ROLAP解决方案如Presto、SparkSQL等不同的是,Impala对元数据(Metadata/Catalog)做了缓存,因此在做查询计划生成时不再依赖外部系统(如Hive、HDFS、Kudu),能做到毫秒级别的生成时间。另外缓存元数据也能极大减少对底层系统Master节点(HiveMet
- 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独立出来,数据持