- 解锁Linux性能密码:25个实用调优技巧
大雨淅淅
Linuxlinux运维
目录一、引言二、系统资源监控工具2.1top和htop2.2vmstat2.3iostat三、内核参数优化3.1调整swappiness参数3.2优化I/O调度器3.3调整dirty_ratio和dirty_background_ratio3.4启用大页内存(HugePages)3.5调整内核参数net.core.somaxconn四、网络性能优化4.1优化网络缓冲区4.2调整tcp_tw_rec
- sourcetree &gitlab
wtdjy
gitlab
1.首先需要安装sourcetreeSourcetree|FreeGitGUIforMacandWindows和gitGit详细安装教程(详解Git安装过程的每一个步骤)_git安装-CSDN博客2.gitlab创建好相应的项目3.打开sourcetree文件→克隆/新建如果是clonewithHTTPs,将连接之间复制到原路径/URL处即可,选择本地目标路径,点击克隆如果是clonewithSS
- 后端开发面经系列 -- 字节跳动C/C++一面面经
阿Q技术站
面经字节跳动面经c++面经字节跳动职场经验
字节跳动C/C++一面面经公众号:阿Q技术站来源:https://www.nowcoder.com/feed/main/detail/74bf25e202ea4fcba09c01dae530ff9b1、虚拟地址是怎么转化到物理地址的?页表的构成?mmu了解过吗?虚拟地址到物理地址的转换是通过操作系统中的内存管理单元(MemoryManagementUnit,MMU)来实现的。MMU是计算机系统中的
- react原理面试题
前端react
以下是一些关于React原理的面试题:一、虚拟DOM(VirtualDOM)请简要解释React中的虚拟DOM是如何工作的?答案:当组件的状态发生变化时,React首先会在内存中创建一个新的虚拟DOM树来表示更新后的UI结构。然后,React会将这个新的虚拟DOM树与旧的虚拟DOM树进行比较(这个过程称为Diff算法)。Diff算法会找出两个虚拟DOM树之间的差异,例如哪些节点被添加、删除或者修改
- linux日志管理_日志系统
Guff_hys
linux运维服务器eclipseide开发语言程序人生
10.1日志系统(系统日志管理)syslog&rsyslog日志:主要用途是系统审计、监测追踪和分析统计。Linux内核由很多子系统组成,包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息,这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区,于是就有了syslog。syslog是一个综合的日志记录系统,它广泛应用于各种类UNIX系统上。它的主要
- 错误:ORA-01034: ORACLE不可用ORA-27101:共享内存域不存在
走到哪,爬到哪
oraleoracle数据库database
出现原因出现的原因有多种,我出现的原因是,登录oracle后,非正常退出,比如直接关闭窗口。解决方法在虚拟机命令窗口输入sqlplus/assysdba启动oraclestartup
- 同时导出Oracle,PostgreSQL库中相同的表位CSV后调用Beyond Compare脚本对比
[.]*?
oraclepostgresql数据库
##同时导出Oracle,PostgreSQL库中相同的表位CSV后调用BeyondCompare脚本对比把Oracle库里的表移行至PostgreSQL后,需要确保数据一致性,1.把表数据以CSV形式分别导出至\out\old\out\new2.通过cmd命令调用BeyondCompare4附加脚本(BeyondCompare支持使用命令行调用其脚本功能),参数生成对比结果报告D:\Progra
- C++中迭代器与指针
DevangLic
BraveBridgec++开发语言学习算法数据结构
在C++中,指针和迭代器虽然在某些方面表现出相似的行为,但它们的设计目标、使用场景以及功能上有明显的不同。以下是它们的共性和区别,以及通过代码进行说明:1.共性:遍历容器元素:指针和迭代器都可以用来遍历数组或其他连续内存区域,或者STL容器中的元素。解引用操作:通过解引用操作符*可以访问指针或迭代器所指向的对象。算术运算:两者都支持自增(++)和自减(–)运算符,用于移动到下一个或前一个元素。示例
- Oracle v$sql 视图详解
SHIZHK
数据库Oracle
SQL_TEXT:SQL文本的前1000个字符SHARABLE_MEM:占用的共享内存大小(单位:byte)PERSISTENT_MEM:生命期内的固定内存大小(单位:byte)RUNTIME_MEM:执行期内的固定内存大小SORTS:完成的排序数LOADED_VERSIONS:显示上下文堆是否载入,1是0否OPEN_VERSIONS:显示子游标是否被锁,1是0否USERS_OPENING:执行语
- C语言(九)----C语言内存函数
win水
c语言
C语言内存函数memcpy使用和模拟实现memcpy使用void*memcpy(void*destination(目标),constvoid*source(源头),size_tnum(字节));memcpy会把source指向位置的内容拷贝到destination指向内存的位置,拷贝大小是num个字节,注意在正常拷贝的过程中,memcpy函数遇到\0并不会停止,而是在拷贝目标字节数之后停止,即会将
- C语言(六)----指针(上)
win水
c语言
深入理解指针(1)内存和地址内存单元都有自己的编号,编号也叫地址,房间号就是地址,地址在C语言中又叫指针一个内存单元:一个字节(8个bite)取地址操作符&变量创建的本质是在内存中申请空间&(取地址操作符(属于单目操作符))在有多个字节时,取的是其中较小的地址打印地址:%p#includeintmain(){inta=0;printf("%p",&a);return0;}//&a取出的是a所占4个
- 移除链表元素 设计链表 反转链表
默默修炼的小趴菜
算法c++开发语言
1.删除链表中等于给定值val的所有节点#includeusingnamespacestd;structListNode{intval;ListNode*next;ListNode(intx){val=x;next=NULL;}};ListNode*remove(ListNode*head,intval){ListNode*dummyHead=newListNode(0);dummyHead->n
- Redis--过期删除策略和数据淘汰策略
像素化创新
redisredis数据库缓存
过期删除策略Redis的键过期后不会立即删除,而是通过定时删除、定期删除和惰性删除三种策略来管理过期键。这些策略旨在平衡性能和内存使用,避免系统资源的过度消耗。下面详细介绍这三种策略:1.定时删除(TimelyDeletion)解释:Redis会为每个设置了过期时间的键创建一个定时器,当键过期时,定时器触发,Redis会立即删除这个键。优点:及时删除过期键,释放内存。缺点:为每个键都设置定时器可能
- 服务器拔下内存条系统不能启动,电脑主板不能启动的解决方法
weixin_39742065
服务器拔下内存条系统不能启动
电脑主板不能启动的解决方法因为主板扩展槽或扩展卡有问题,导致插上显卡、声卡等扩展卡后,主板没有响应,因此造成开机无显示。例如蛮力拆装agp显卡,导致agp插槽开裂,即可造成此类故障。下面是JY135小编收集整理的电脑主板不能启动的解决方法,欢迎阅读。电脑主板不能启动的解决方法一:电脑开机的过程大概是这样的,主板进行BIOS自检,通过后交给设定的引导磁盘,即光盘或硬盘,然后读取引导磁盘的信息进行引导
- Redis的过期删除策略
编程bond
redis数据库缓存
1.基本概念:Redis的过期删除策略主要用于管理具有过期时间的键,确保在键过期后适时清除以释放内存。Redis的过期删除策略主要分为三种方式。2.惰性删除(LazyDeletion)Redis不主动去删除过期的键,而是在键被访问时才检查它是否过期。如果过期,立即删除并返回空结果。优点:降低了不必要的内存删除操作,节省CPU资源。缺点:如果某些键从不被访问,过期后也不会被删除,可能会导致内存占用增
- 2-1文件描述符
要好好养胃
linuxlinux服务器
文章目录1虚拟地址空间1.1为什么需要虚拟内存而不是直接加载进物理内存1.2分区2文件描述符1.1文件描述符表file1虚拟地址空间可以用来加载程序数据对应一段连续的内存地址,其实位置为0这个内存地址是虚拟的,并不是物理内存的0地址当运行磁盘上的一个可执行程序,就会得到一个进程,内核会给每一个进程创建一个虚拟地址空间,并将应用程序装载到虚拟地址空间对应的内存中进程在运行过程中,程序内部的指令都是通
- Linux 下使用vmstat监控系统性能
linux
简介Linux中的vmstat(虚拟内存统计)命令用于监控系统性能,包括CPU使用情况、内存使用情况、交换活动、磁盘I/O和系统进程。它提供实时性能指标,有助于诊断系统瓶颈。基础语法vmstat[options][delay][count]delay:更新之间的间隔(以秒为单位)count:命令在停止之前运行的次数示例用法不带参数运行vmstat这将显示一份包含自上次重启以来的系统统计信息的报告v
- Python:线程
00&00
Python服务器python
线程是操作系统和编程中非常重要的概念,是进程中的一个执行单元。它可以看作是轻量级的进程,多个线程可以共享同一进程的资源,如内存和文件句柄。以下是对线程的详细介绍:1.线程概念线程是操作系统能够调度的最小单位,代表了程序执行的一个单独的序列。一个进程可以包含多个线程,所有线程共享进程的地址空间和资源,但每个线程有其独立的执行栈和程序计数器。2.线程的组成线程通常由以下几个部分组成:线程ID:唯一标识
- 500G机械硬盘换成120固态硬盘+500G机械硬盘
上官-王野
win10开发
一、电脑太卡换SSD固态硬盘本人用联想E40,老机器,8G内存,2.3GHz,i5处理器,做python开发,发现电脑刷新太慢,所以想换120G固态硬盘,据说能提速,于是我在京东买了一个金士顿的SSD固态硬盘京东地址1、你问我为什么选120G固态硬盘?答:性价比高。你太大内存的固态硬盘用于装文件和软件不值得,我们一般系统装固态硬盘里,重要软件装固态硬盘里,剩下的可以装机械硬盘里,读取速度还是以固态
- 简单工人工资管理系统
weixin_44799641
数据结构和算法算法
intmain(intargc,char*argv[]){intEmployee[10]={27000,32000,32500,27500,28500,29000,31000,32500,3000,2600};intIndex;intNewSalary;intSelection;while(1){printf("===========================================
- jenkins创建新用户_3. Jenkins使用 -- 用户设置
勃斯丶李 mkq
文章已经迁移到我的个人博客,里面还有更多内容。3.Jenkins使用--用户设置建立用户主页点击系统管理->管理用户,可见现在只有一个管理员用户点击右侧新建用户new.png输入所需信息现在,我们有两个用户退出admin账号,登录user1账号,确定没有问题,再次退出,返回admin账号分配用户角色新建的用户有和管理员一样的权限,不安全,我们需要限制其权限。我们使用角色来管理权限。简单来说就是管理
- 案例分享:D2 Slam @xuhao3e8
OAK中国_官方
无人机
视频来源:$D^2$SLAM:DecentralizedandDistributedCollaborativeVisual-inertialSLAM硬件新4P的介绍https://www.oakchina.cn/product/oak-ffc-4p-new/软件介绍:https://github.com/HKUST-Aerial-Robotics/D2SLAM~~~~~~~(分界线)~~~~~~~
- OAK相机:纯视觉SLAM在夜晚的应用
OAK中国_官方
人工智能机器学习SLAM
哈喽,OAK的朋友们,大家好啊,今天这个视频主要想分享一下袁博士团队用我们的OAK相机产出的新成果在去年过山车SLAM的演示中,袁博士团队就展示了纯视觉SLAM在完全黑暗的环境中的极高鲁棒性。现在袁博士团队进一步挖掘了纯视觉的潜力,于是又专门录了一段夜间的演示给我们展示了在完全黑暗及光线变化的环境中可靠工作的VIO、回环检测及适用于大场景的内存管理技术。他们现在已将整套VSLAM方案包含在Fact
- 深入解析C/C++内存管理:new与delete的使用及原理
N201871643
热门相关技术分享javajvm开发语言
深入解析C/C++内存管理:new与delete的使用及原理目录深入解析C/C++内存管理:new与delete的使用及原理一、new操作符1.1定义1.2常用属性1.3事件1.4实操二、delete操作符2.1定义2.2常用属性2.3事件2.4实操
- spark为什么比mapreduce快?
京东云开发者
sparkmapreduce大数据
作者:京东零售吴化斌spark为什么比mapreduce快?首先澄清几个误区:1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的2;DAG计算模型减少的是磁盘I/O次数(相比于mapreduce计算模型而言),而不是shuffle次数,因为shuffle是根据数据重组的次数而定,所以shuffle次数不能减少所以总结spark比ma
- 统计用户输入 C语言
2501_90645732
c语言
从键盘读取用户输入直到遇到#字符,编写程序统计读取的空格数目、读取的换行符数目以及读取的所有其他字符数目。(要求用getchar()输入字符)#includeintmain(){printf("Pleaseinputastringendby#:\n");intc;intspaces=0;intnewlines=0;intother=0;while((c=getchar())!='#'){if(c=
- 【go语言】复杂数据类型——切片Slice
2302_79952574
golanggolang学习开发语言
1.理解切片Slice(1)切片是什么?切片是数组的一个引用,因此是引用类型。slice通过内部指针和相关属性引用数组片段,以实现变长方案。切片Slice包含三个部分:指向底层数组的指针。切片的长度(len):表示切片当前可见的元素个数。切片的容量(cap):表示从切片起始位置到底层数组末尾的最大可用元素数量。(2)内存布局Go的切片在内存中的结构可以用以下类型表示:typeSliceHeader
- Sharding-Sphere vs Mycat vs TiDB
木一番
分库分表TiDB
强烈推荐TiDB,这是未来大中型公司的数据库,一定的NewSQL优点:传统数据库面向磁盘设计,基于内存的存储管理及并发控制,NewSQL数据库那般高效利用中间件模式SQL解析、执行计划优化等在中间件与数据库中重复工作,效率相比较低分布式事务相比于XA进行了优化,性能更高基于paxos(或Raft)协议的多副本,实现了真正的高可用、高可靠天生支持数据分片,数据的迁移、扩容都是自动化的,大大减轻了DB
- JAVA中ES根据条件查询计数操作
爪哇天下
javaelasticsearchjvm
NativeSearchQueryBuilderqueryBuilder=newNativeSearchQueryBuilder();//获取查询条件BoolQueryBuilderboolQueryBuilder=QueryBuilders.boolQuery();boolQueryBuilder.must(QueryBuilders.termQuery("key1",value1));bool
- Vue打包(webpack)缓存
歌歌的前端学习之路
vue.jswebpack前端
解决方法:1、修改vue.config.js文件constTimestamp=newDate().getTime();module.exports=defineConfig({configureWebpack{output:{filename:`[name].${Timestamp}.js`,chunkFilename:`[name].${Timestamp}.js`},},css:{extrac
- 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独立出来,数据持