- Android.mk
盼雨落,等风起
安卓脚本文件android
一、基础认知定位AndroidNDK构建系统的GNUMakefile片段,描述NDK项目结构可编译生成:APK、JAVA库、C/C++可执行程序、静态库(.a)、动态库(.so)兼容性:新源码逐渐转向Android.bp,但Android.mk仍被支持文件结构LOCAL_PATH:=$(callmy-dir)#必选:定义当前路径include$(CLEAR_VARS)#必选:清除变量(除LOCAL
- dpdk内存管理分析
blue_罗林
dpdk服务器
dpdk内存管理分析文章目录dpdk内存管理分析1.1简述1.2`rte_config_init`分析1.3`eal_hugepage_info_init`的分析1.4`rte_eal_memzone_init`的分析1.5`rte_eal_memory_init`的分析1.6rte_eal_malloc_heap_init的分析1.1简述dpdk使用了hugepage和numa感知进行构建内存管
- Dpdk环境的搭建
Flying Fish(HHH)
dpdk分布式计算机网络
1、下载源码:gitclonehttps://github.com/DPDK/dpdk2、编译命令CC=gccmeson-Dlibdir=lib--default-library=static-Dexamples=allx86_64-native-linuxapp-gcc-Dbuildtype=debugoptimizedninja-Cx86_64-native-linuxapp-gcc-j110
- iouring的demo性能测试程序
Flying Fish(HHH)
iouring算法分布式
/*多线程多实例,注意线程的绑定,一个core绑定一个sq线程,一个或者多个core绑定一个或多个work线程,还有控制worker线程个数,还有numa的绑定编译命令:gcc-g-oiouringwww_iouring.c-L/usr/lib-luring执行命令:numactl--cpunodebind=1--membind=1./iouringio_uring.conf*/#define_G
- DPDK技术原理与架构
Linux服务器开发
C++后台开发C++开发DPDKDPDKDPDK原理网络协议VPP虚拟化
本文参考“《中国电信DPDK技术白皮书v1.0》”,DPDK技术框架可以划分为DPDK基本技术与DPDK优化技术两部分,前者指标准的DPDK数据平面开发包和I/O转发实现技术,后者是在DPDK应用过程中,为进一步提高各类用户应用程序的转发性能。中国电信DPDK技术白皮书v1.0DPDK基础—认识DPDK技术DPDK架构高清版DPDK编程指南(中文版)技术原理与架构由于采用软件转发和软件交换技术,单
- DPDK(mtcp)vs RDMA/ROCE
weixin_34396103
网络
0.缠论:http://52investing.com/1.简书.DPDK:http://www.jianshu.com/p/dcb6ccc83ea52.mTCP和DPDK构造百万千万并发TCP连接3.基于SoftRoCE了解RDMA4.RoCE与RDMA技术:http://support.huawei.com/huaweiconnect/enterprise/thread-329081.html
- DPDK之(七)—— support for vhost-user学习笔记
何进哥哥
DPDKvhostDPDK
转地址:http://www.lai18.com/content/1851237.htmlX86体系早期没有在硬件设计上对虚拟化提供支持,因此虚拟化完全通过软件实现。一个典型的做法是通过优先级压缩(RingCompression)和二进制代码翻译(BinaryTranslation)相结合,VMM在特权级ring0,Guest操作系统在非特权级ring1,Guest应用程序在ring3。由于Gue
- (云计算HCIP)HCIP全笔记(十六)本篇介绍虚拟机VM特性:内存复用、虚拟机克隆、虚拟机快照、NUMA架构、资源迁移、磁盘扩容、HA集群迁移、VNC登录...
凉凉心.
从0开始云计算(HCIP)云计算架构华为HCIP虚拟机特性内存复用NUMA技术磁盘扩容
集群特性集群把一组主机组合起来形成一个整体,向用户提供资源的方式(计算资源、存储资源、网络资源)好处:当一台主机发生宕机情况后,该主机上可以改用HA技术将宕机主机的虚拟机转移至其他正常运行的主机上。坏处:当虚拟机业务过大,传输虚拟机将会出现停机传输的情况,等虚拟机传输至新主机后,业务才可以恢复,但总体利大于弊HA集群的高可用特性,客服单台主机的局限性,做到当某台物理主机出现故障时,业务不中断或中断
- Github 2025-06-21 Rust开源项目日报Top10
根据GithubTrendings的统计,今日(2025-06-21统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Rust项目10TypeScript项目1Python项目1Zed:由Atom和Tree-sitter的创建者开发的高性能多人代码编辑器创建周期:1071天开发语言:Rust协议类型:OtherStar数量:9436个Fork数量:261次关注人数:
- ajax 提示404 not found,ajax post 请求 一直提示 404 not found textStatus error
Kimgoeunlaogong
ajax提示404notfound
2019独角兽企业重金招聘Python工程师标准>>>ajaxpost请求一直提示404notfoundtextStatuserrorvardataParams={schoolSupplierIds:schoolSupplierIds};$.ajax({type:"POST",url:"/menuManage/caterDishes.htm",data:dataParams,dataType:"j
- 在linux安装MySQL 8.0.42 源码步骤
DBA老曾
MySQLlinuxmysqldba
1、主机信息root@u24-mysql-50:~/soft#cat/etc/issueUbuntu24.04.2LTS\n\l2、mysql版本mysql-boost-8.0.42.tar.gz3、mysql编译参数aptinstall-ygccg++makecmake\libncurses-devlibssl-dev\libaio-devlibnuma-dev\zlib1g-devbisonc
- Linux检验库是否安装成功
THe CHallEnge of THe BrAve
笔记linux运维服务器
检验库是否安装成功在Linux系统中,安装库后可以通过以下几种方法来确认是否安装成功:方法一:使用dpkg命令检查dpkg是Debian系统中用于管理软件包的底层工具,可以直接查询已安装的软件包:dpkg-slibnuma1libaio-dev如果库已成功安装,输出会包含Status:installokinstalled。方法二:使用apt命令检查apt是更高层的包管理工具,也可以用来查询软件包状
- Github 2024-07-20 开源项目日报Top10
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-07-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目3PowerShell项目2Go项目2Rust项目1C#项目1HCL项目1Vault-开源秘密管理与加密服务创建周期:3277天开发语言:Go协议类型:OtherStar数量:29288个Fork数量:4127次关注人数:29288人
- Github 2024-06-07 Java开源项目日报Top10
老孙正经胡说
githubjava开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-06-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Java项目9非开发语言项目1TypeScript项目1Python项目1《Hello算法》:动画图解、一键运行的数据结构与算法教程创建周期:476天协议类型:OtherStar数量:63556个Fork数量:7731次关注人数:63556人贡献人数
- 2022“杭电杯”中国大学生算法设计超级联赛(7) 2022杭电多校第七场
能工智人小辰
杭电多校算法图论
题目1002IndependentFeedbackVertexSetAC代码1003CountingStickmenAC代码1002IndependentFeedbackVertexSet**TimeLimit:6000/3000MS(Java/Others)MemoryLimit:524288/524288K(Java/Others)TotalSubmission(s):346AcceptedS
- 一个意外错误使你无法删除文件夹,错误0×80004005:未知错误(5种解决方法,看看哪个适合你?)
enasdf_fdsaen
教程windows
文件或文件夹删除不了,方法如下:1、360粉碎?(无用!!)2、安全模式下删除(试过but无用!!)3、重启(无用!!)4、猜想:磁盘有坏道或者others?那么用自带的工具or各种分区软件修复(还是无用!!)重点来了:亲测一神奇办法5、通过RAR压缩软件删除具体操作:右键点击该文件夹→选中「添加到压缩文件」→选中「压缩后删除原来的文件」→确定转载自:看这里
- 模块二:C++核心能力进阶(5篇)篇二:《多线程编程:C++线程池与原子操作实战》(14万字深度指南)
AI迅剑
c++java开发语言
一、前言:多线程编程的范式革命1.硬件与软件的协同进化CPU架构演变:核数爆炸:从4核到AMDEPYC9654的96核缓存层级:L1/L2/L3的访问延迟与共享策略NUMA架构:跨Socket内存访问的优化技巧C++标准演进:C++11://C++14:std::exchange/std::make_uniqueC++17:并行STL算法C++20:协程//C++23:std::jthread(自
- window 显示驱动开发-支持多个处理器
程序员王马
驱动开发
多处理器计算机上的用户模式显示驱动程序可以让MicrosoftDirect3D运行时处理多处理器优化,或者驱动程序可以执行自己的多处理器优化。1.多处理器优化的两种路径优化方式执行方适用场景运行时自动优化Direct3D运行时驱动无自定义多线程逻辑时,依赖运行时默认调度(如命令队列分帧/分线程提交)。驱动自主优化UMD需硬件特定优化(如GPU引擎绑定、NUMA感知内存分配)。2.运行时自动优化的特
- 虚拟机编译安装 dpdk--运行helloworld
菠萝01
服务器运维
DPDK技术介绍一,版本信息DPDK版本:dpdk-22.07操作系统:Ubuntu22.04.1LTS二、虚拟机ubuntu添加网卡1.2.显卡由enssx改为ethxsudonano/etc/default/grub找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE_LINUX="
- gcc constructor 属性修饰的构造函数未被链接问题
longyu_wlz
dpdkconstructordpdkwhole-archive
dpdkpmd驱动的初始化过程dpdk支持多个pmd驱动,pmd驱动的种类随着时间的推移还在不断的扩展。为了避免添加新驱动对现有框架代码的修改,dpdk对不同驱动的初始化过程进行了抽象,添加一个新的驱动只需要添加一个驱动注册的构造函数即可。dpdk-16.04中通过PMD_REGISTER_DRIVER宏来注册驱动,这个宏的实现如下:#definePMD_REGISTER_DRIVER(d)\vo
- 多核处理器的高速点对点互联总线技术
欧先生^_^
运维
QPI(QuickPathInterconnect)是英特尔(Intel)为多核处理器设计的高速点对点互联总线技术,主要用于以下场景:核心作用CPU间通信在多路(多CPU插槽)服务器或高端工作站中,QPI负责不同物理CPU之间的高速数据交换(如NUMA架构下的内存访问、缓存一致性同步等)。替代传统前端总线(FSB)取代早期共享总线架构,提供更高的带宽和更低的延迟。技术特点点对点连接每个CPU通过独
- CPU世上最全说明解析
平凡而伟大.
计算机科学基础CPU科普CPU计算机科普
目录1、主频2、外频3、前端总线(FSB)频率4、CPU的位和字长5、倍频系数6、缓存7、CPU扩展指令集8、CPU内核和I/O工作电压9、制造工艺10、指令集(1)CISC指令集(2)RISC指令集(3)IA-64(4)X86-64(AMD64/EM64T)11、超流水线与超标量12、封装形式13、多线程14、多核心15、SMP16、NUMA技术17、乱序执行技术18、CPU内部的内存控制器1、
- idea使用笔记之maven全局配置
编程界小学生
IntelliJIDEA使用笔记intellijidea
idea使用笔记之maven全局配置idea打开一个新的项目,maven都需要重新配置,解决方案如下需要有个默认全局配置配置路径如下:File->OtherSettings->DefaultSettings
- Android.mk的用法
jim_dayday_up
#Android_进阶_系统android
前言Android.mk文件是Android编译系统中用于描述项目源文件、库和模块的Makefile。它采用GNUMake的语法,但也包含了一些特定于Android编译系统的规则和变量。以下是对其语法和使用方法的详细解释及示例。一:模块种类一个Android.mkfile用来向编译系统描述你的源代码。具体来说:该文件是GNUMakefile的一小部分,会被编译系统解析一次或多次。你可以在每一个An
- CentOS7更新 GLIBC 2.28
liulilittle
Extensionlinux运维centos服务器
更新方法跟这个差不多,只能手动高风险操作,虚拟机情况下建议先备份快照:CentOS7更新GLIBC2.25-CSDN博客首先安装依赖环境:yuminstallbison-yyum-yinstallwgetbzip2gccgcc-c++glibc-headers升级GNUMake3.82to4.2.1及以上版本:wgethttp://ftp.gnu.org/gnu/make/make-4.2.1.t
- linux使用make命令编译错误,有关linux的make文件编译问题
达尔文小姐
我现在编译一个linux下的软件包,一周前编译还可以,但是现在却无法编译了,提示很多错误,但是这些错误觉得又不错误,对make如何管理又不是很了解,请高手指点一下。Makefile文件内容如下(比较长,请耐心看一看):#Linux/*BSD*/OthersCC=gccCFLAGS=-Wall-O3CLIBS=SERVER_OBJ=pass.oaes.obase64.ocast.oflood.oip
- launcher启动流程fallbackhome/launcher/开机向导(Android14)
qq_36975610
android系统架构
从system_server服务启动到launcher启动并可见的amsatmswms以及具有android.intent.category.HOME属性的activity调用过程虽凌乱,但完整一system_server中startOtherServices方法->ActivityManagerService.systemReady()->mAtmInternal.startHomeOnAllD
- Linux系统时间同步与时区设置全攻略:适用于CentOS与Ubuntu的实用方法_centos 同步时间
m0面试大全
程序员linuxcentosubuntu
最全的Linux教程,Linux从入门到精通======================linux从入门到精通(第2版)Linux系统移植Linux驱动开发入门与实战LINUX系统移植第2版Linux开源网络全栈详解从DPDK到OpenFlow第一份《Linux从入门到精通》466页====================内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linu
- nlf 2025 部署笔记
AI算法网奇
动捕人工智能
目录jit部署测试命令nlf-pipepinenlf-pipeline依赖项:stcnbuf人体分割,没有sam2好framepump库报错:分割算法:stcn.pth相机姿态估计:jit部署测试命令python-c"importtorch;importtorchvision;torch.jit.load('/shared_disk/models/others/nlf/models/nlf_l/n
- ABC 353
空雲.
算法c++数据结构
目录C.SigmaProblemD.AnotherSigmaProblemC.SigmaProblem容斥。所有都先不取模,每个数出现n-1次,先算出不取模的答案。接下来找出哪些对之和超出了1e8,统计这样的对的个数,再拿之前的答案减掉个数*1e8只需要用二分就可以查找了,lower_bound(a+i+1,a+n+1,mod-a[i])-a的查找范围:[i+1,n]#include#define
- 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独立出来,数据持