- android——热修复(补丁)
打包补丁流程1.生成基准包(baselineapk)首先需要生成一个基准包,后续的补丁都是基于这个基准包生成的:./gradlewassembleRelease生成的基准包位于app/build/bakApk/目录下。2.修改代码修复bug或进行其他修改后,确保只修改了代码而没有新增或删除资源文件(Tinker对资源文件的修改有限制)。3.配置补丁信息(由于已经配置到单独文件,所以此步可省略)在a
- Sophix、Tinker 和 Robust 三大主流 Android 热修复框架的详细对比
以下是Sophix、Tinker和Robust三大主流Android热修复框架的详细对比,从技术原理、功能支持、性能表现到适用场景的全方位分析:一、核心原理对比特性SophixTinkerRobust修复方式混合模式(即时生效+冷启动)冷启动生效(全量DEX替换)即时生效(方法级代理替换)代码修复原理智能选择:•5.0-7.1:ArtMethodHook•8.0+:JIT编译优化•低版本:Dex合
- AndFix、Robust 与 Tinker 热修复框架深度对比
AndFix、Robust与Tinker热修复框架深度对比在Android热修复领域,AndFix、Robust和Tinker是三种主流的解决方案,它们在实现原理、使用场景和限制条件上有显著差异。以下是三者的详细对比分析:一、核心原理对比特性AndFixRobustTinker修复方式即时生效(NativeHook)即时生效(Java方法替换)冷启动生效(DEX替换)底层技术修改ArtMethod
- 编译TinkerBoard2主板BuildRoot系统遇到的问题
一、编译BuildRoot问题1.1、提示没有installpython/home/workspace/BuildSpace/Debian$makeumask0022&&make-C/home/workspace/BuildSpace/Debian/buildrootO=/home/workspace/BuildSpace/Debian/buildroot/output/rockchip_rk33
- Android Tinker Dex差分与合成原理的源码深度剖析(3)
Android 小码蜂
Tinker框架解析androidkotlinflutterandroid-studioreactnative
AndroidTinkerDex差分与合成原理的源码深度剖析一、Dex文件格式基础1.1Dex文件结构概述Android应用的Java代码在编译后会转换为Dex(DalvikExecutable)格式,这种格式专为移动设备优化,减少了冗余信息并提高了类加载速度。一个典型的Dex文件包含以下核心结构:文件头(Header):包含整个Dex文件的元数据,如魔数(MagicNumber)、校验和(Che
- Android Tinker与系统交互原理深度剖析(22)
Android 小码蜂
Tinker框架解析android交互kotlinflutterandroid-studioandroidstudio
AndroidTinker与系统交互原理深度剖析一、引言在移动应用开发领域,热修复技术已经成为提升应用质量和用户体验的重要手段。Tinker作为一款由腾讯开发的优秀Android热修复框架,能够在不重新发布应用的情况下修复线上问题,极大地提高了应用维护的效率。Tinker的核心优势在于其高效的类加载机制、资源更新策略以及与Android系统的深度集成。本文将从源码级别深入分析Tinker与Andr
- 热修复——Tinker的集成与使用(1)
2401_84148974
程序员python开发语言
2)开启multiDexdefaultConfig{…multiDexEnabledtrue}3)应用tinker的gradle插件这部分可先不管,在第三部分《Tinker的配置及任务》的第2节《配置Tinker与任务》中会添加。可跳过这部分继续往下看。//applytinker插件applyplugin:'com.tencent.tinker.patch三、Tinker的配置及任务1、开启支持大
- 热修复框架Tinker与Robust原理剖析
Ya-Jun
android
热修复框架Tinker与Robust原理剖析一、热修复技术概述1.1什么是热修复热修复(HotFix)是Android平台上的一种动态修复机制,它允许应用在不重新发布版本的情况下,动态修复线上bug。这种技术对于快速修复线上问题、降低用户流失率具有重要意义。1.2热修复的应用场景紧急bug修复功能动态更新A/B测试动态功能控制1.3主流热修复方案对比方案优点缺点适用场景Tinker支持全量更新、性
- 从阿里云EDM到美团云:典型微服务治理平台的实战经验分享
码农老起
微服务架构云原生
目录一.阿里云EDM(EnterpriseDistributedApplicationService)二.腾讯云TSF(TencentServiceFramework)三.华为云FusionStage四.京东云JDC(JDCloudMicroservicePlatform)五.百度智能云CloudStack六.字节跳动Tinker七.小米云平台八.美团云服务平台随着微服务架构的广泛应用,微服务治理
- 推荐开源项目:RTL8852BE —— 无线网卡驱动的福音
周琰策Scott
推荐开源项目:RTL8852BE——无线网卡驱动的福音项目地址:https://gitcode.com/gh_mirrors/rt/rtl8852be1、项目介绍RTL8852BE是一个开源项目,旨在为Linux内核提供针对RealtekRTL8852BE芯片的驱动支持。这个项目由Rock_Shen开发,并从TinkerBoard2/kernel分支出来,现在由HRex39维护。它主要用于解决Li
- Amazon Neptune
HaoHao_010
人工智能aws云计算服务器云服务器数据库
AmazonNeptune是AWS提供的完全托管型图数据库服务,专门设计用于处理复杂的图形数据结构,支持快速执行图查询。它支持两种主流的图模型:属性图和RDF图,并且兼容ApacheTinkerPop和SPARQL查询语言,这使得它可以满足多种图数据库的应用需求。AmazonNeptune的主要特点和功能完全托管的图数据库服务:AmazonNeptune是一个完全托管的数据库服务,意味着AWS会处
- 华硕Tinker Board开发板(rk3288处理器)开发 ---- 编译Android7.1.2源码流程
JimmyHoo0000
TinkerBoardrk3288开发Android源码编译Android7.1.2编译u-boot编译kernel编译AOSP
备注:在window7系统下,安装VMWorkstation(虚拟机),在虚拟机中安装了ubuntu16.04desktop版本linux系统,进行android源码编译的。编译android源码,最好是以root权限运行,不然很多东西需要授权(麻烦)。进入root身份方式:首先输入suroot,接着输入密码(已经设定好的)。如果没有设定过root密码,请这样操作:sudopasswdroot,接
- 踩坑热修复框架Tinker
小蜗牛在漫步
Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。为什么使用Tinker当前市面的热补丁方案有很多,其中比较出名的有阿里的AndFix、美团的Robust以及QZone的超级补丁方案。但它们都存在无法解决的问题,这也是正是使用Tinker的原因。总的来
- 2016年高考英语全国卷2 - 阅读理解B
让文字更美
Fiveyearsago,whenItaughtartataschoolinSeattle,IusedTinkertoysasatestatthebeginningofatermtofindoutsomethingaboutmystudents.IputasmallsetofTinkertoysinfrontofeachstudent,andsaid:“MakesomethingoutoftheT
- html表单没的csrf保护,表单与csrf保护
翰遴院遴选
html表单没的csrf保护
##表单提交和CSRF在本课程中,我们将介绍将表单数据提交到服务器的基本工作流程。在此过程中,我们将介绍一个新概念:`CSRF`(跨站点请求伪造)。###新手建议前面几节我们介绍了如何从数据库中获取数据,使用`Tinker`添加测试数据。接下来我们在页面中实现添加数据并展示。>不论做任何复杂的功能,都是从简单开始,慢慢迭代,这里给新手一个建议,不论做什么都先按照`路由->控制器->视图`的顺序来开
- 【AI视野·今日CV 计算机视觉论文速览 第292期】Thu, 18 Jan 2024
hitrjj
视觉计算机视觉Papers计算机视觉CV生成模型AIGC3D高效计算
AI视野·今日CS.CV计算机视觉论文速览Thu,18Jan2024Totally102papers上期速览✈更多精彩请移步主页DailyComputerVisionPapersGARField:GroupAnythingwithRadianceFieldsAuthorsChungMinKim,MingxuanWu,JustinKerr,KenGoldberg,MatthewTancik,Angj
- 穿越阿帕拉契亚(二十七)漫步云端
Hobbit霍比特人
一双子山脊Tinkertoe和B回望杰菲尔德山总统山脊锡兰客栈美国青年锡兰客栈锡兰客栈客栈床铺,简单坚实锡兰瀑布伊森湖AMC高地中心克劳福德客栈遗址夜深沉,巨大的双子山脊挡住月色,像厚重的帷幕笼罩加勒熙德客栈。告别局促的帐篷和简陋的木屋,客栈硬邦邦的长椅让我感到格外舒适,不知不觉间又是一个明亮的早晨。晨曦从山脊间的缝隙扫过窗台,像母亲的手轻抚着我的脸庞。揉揉惺忪睡眼,我从睡袋中钻出来,环视周遭。客
- 引用cn.bertsir.zbarLibary:zbarlibary闪退
rimuweinuan_
Android问题android
错误内容:TinkerUncaughtHandlercatchexception:java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.sinoservices.scantest/cn.bertsir.zbar.QRActivity}:android.view.InflateException:BinaryXMLfile
- 腾讯系热修复-Tinker使用及原理
月影路西法
简介Tinker是适用于Android的修补程序库,它支持dex,库和资源更新,而无需重新安装apk。更新完成后重新启动即可Tinkergithub官方地址添加依赖1.app的build.gradlebuildscript{dependencies{classpath('com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1')}}2.在module
- TinkerTool System for Mac(系统设备维护软件)
過客_fad6
你需要一款好用的系统设备维护软件吗?TinkerToolSystemMac破解就是一款这样的软件。TinkerToolSystemformac破解版可以帮助你修改系统界面字体、隐藏文件等一些系统隐藏的属性,使用TinkerToolSystemforMac破解版轻松进行系统维护。TinkerToolSystemMac下载路径:http://t.cn/AiHIoUvh下载完成后打开“TinkerToo
- Laravel factory 生成测试数据
kimcastle
素材:Laravel框架已经有一个测试的demo,在App/database/factories/UserFactory.php步骤:使用命令phpartisantinker进入tinkerphpartisantinker使用命令phpartisantinker2.输入namespaceApp;使用命名空间namespaceApp;输入namespaceApp;使用命名空间查询原来User模型里有
- Android 开发高手课笔记-存储篇
毛先森
前言这套课程是由微信团队,Tinker前负责人张绍文出品相关链接Java对象序列化您不知道的5件事……ObjectOutputStream源码SharePerfrence缺点不论apply(异步)还是commit(同步)都会将整个xml文件重写跨进程容易出现问题,尽管开启了sp的多进程模式极端情况下,App崩溃时数据没落地,最终导致丢失数据序列化-SerializableSerializable原
- Tencent Tinker:移动应用热修复的未来之路
Calvin880828
Android开源框架android
TencentTinker:移动应用热修复的未来之路1引言移动应用热修复是一项在移动应用开发领域中日益重要的技术,它可以帮助应用程序开发者快速修复线上应用的bug、漏洞和功能问题,而无需重新发布整个应用。这种能力对于提高用户体验、降低用户流失率以及快速响应市场需求非常关键。作为移动应用热修复领域的一项重要技术,TencentTinker在这方面发挥着重要的作用。TencentTinker是一个灵活
- MBA十日读--战略章节 笔记
Dachao_lpc
笔记创业创新职场和发展业界资讯学习方法经验分享
战略思维是对一个企业及其所属行业、竞争及对手和长、短期经营环境的综合分析公司需要有深思熟虑的战略规划,否则,将不可避免地成为市场的牺牲品,而不是左右市场的胜利者7S要素模型战略规划包括两个特性不同的阶段:制定和执行如果一个战略需要大幅度调整现有组织,即称为重构(reengineering);反之,即称为组织性调整(organizationaltinkering)●结构(structure)●系统(
- (二)知识图谱数据模型与查询语言
韩韩吖吼
学习KG知识图谱人工智能
知识图谱数据模型与查询语言RDF图数据模型与SPARQL查询语言RDF图数据模型资源描述框架(RDF)数据资源描述框架(RDF)数据示例RDF三元组RDF图RDFSchemaSPARQL查询语言属性图数据模型与Cypher查询语言属性图模型介绍TinkerPop图计算框架与Gremlin图遍历语言与遍历机RDF图数据模型与SPARQL查询语言RDF图数据模型资源描述框架(RDF)数据RDF是知识图
- BuildRoot配置RTL8822CE WIFI&BT模块(BT部分)
zoipuus
TinkerBoard2嵌入式linuxRTL8822CEBT
BuildRoot配置RTL8822CEWIFI&BT模块(WIFI部分)-CSDN博客WIFI部分更新一下:①、rkwifibt.mk查看了output/rockchip_rk3399_tinkerboard2/build/的两个目录都有wifi相关的ko(后面makeclean之后剩下linux-headers-custom路径的),md5都一样,随便选了一个,拷贝所有kozoipuus@AD
- 嵌入式Linux Qt交叉编译环境搭建
zoipuus
TinkerBoard2嵌入式qtlinux
1、下载Qt编译器TinkerBoard2主板,BuildRoot根文件系统,package自带的Qt版本为5.14.2,所以安装的版本也是5.14.2wgethttps://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.runchmoda+xqt-opensource-linux-x64-5.14.2.r
- No such property: variantConfiguration for class: com.android.build.gradle.internal.variant.Appli...
Lee坚武
集成bugly热修复的时候,在依赖插件脚本的时候报错了://依赖插件脚本applyfrom:'tinker-support.gradle'报错内容如下:Nosuchproperty:variantConfigurationforclass:com.android.build.gradle.internal.variant.ApplicationVariantData解决方案:将gradle的版本改
- 试译《今日简史》13
自由译者小帮
Thenextstepisforthealgorithmtostarttinkeringwiththesongsandmelodiesthemselves,changingthemeversoslightlytofityourquirks.Perhapsyoudislikeaparticularbitinanotherwiseexcellentsong.Thealgorithmknowsitbec
- TinkerBoard2板卡BuildRoot系统配置YYT-MIPI7LCD
zoipuus
TinkerBoard2嵌入式linuxBuildRoot
摘录风火轮WikiTinkerboard2Debian下MIPI-DSI屏幕的适配方法|风火轮Wiki(smartfire.cn)简单介绍一下目前RK3399的显示框架。目前的Debian采用的都是LinuxDRM框架进行显示,在DRM框架中,其显示通路如下图所示图中的几个组成部分Framebuffer:显存,嵌入式系统使用的是内存的一部分CRTC:显示控制器,在RK3399平台是SOC内部VOP
- 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独立出来,数据持