- CentOS 7官方源停服,配置本机光盘yum源
码哝小鱼
linux运维centoslinux运维
1、挂载系统光盘mkdir/mnt/isomount-oloop/tools/CentOS-7-x86_64-DVD-1810.iso/mnt/isocd/mnt/iso/Packages/rpm-ivh/mnt/iso/Packages/yum-utils-1.1.31-50.el7.noarch.rpm(图形界面安装,默契已安装)如安装yum-utils依赖错误,按提示安装依赖包rpm-ivh
- postgresql 查看索引是否有效及索引使用情况
majinbo111
postgreSQLpostgresql查看索引建立索引是否有效
查看索引是否有效1.未使用索引前jinbo=#explainanalyzeselect*fromjinbo.studentwherescoreBitmapIndexScanonstudent_score_sex_idx(cost=0.00..4.40rows=2width=0)(actualtime=0.058..0.058rows=1loops=1)IndexCond:((scoreALL(AR
- tapable详解
风火一回
webpacktapablewebpack插件制作
tapable详解tapable是webpack内部使用的一个流程管理工具,主要用来串联插件,完善事件流执行。1.安装tapableyarnaddtapable2.常用hooksimport{SyncHook,SyncBailHook,SyncWaterfallHook,SyncLoopHook,AsyncParallelHook,AsyncParallelBailHook,AsyncSeries
- Python:100行完成属于你的第一个贪吃蛇
ling1s
python开发语言
目录综述制作前的分析任务分析对象分析编程思路分析代码块引用定义变量函数函数一:change(x,y)函数二:inside_map()函数三:inside_snake()函数四:deffruit_appear()函数五:gameLoop()蛇吃东西的机制死亡判定画图相关主函数完整程序总结综述turtle库是Python的一个图形绘制库,它可以通过简单的命令来控制一个小海龟在窗口上绘制图形。这个库的设
- 【modou网络库】Reactor架构与TCP通信机制分析
gma999
服务器c++
Reactor模式EventLoop实现逻辑分析针对于EventLoop的设计还是严格遵循其核心思想oneloopperthread思想,也就是说一个线程只可以拥有一个EventLoop实例,那么为什么这样实现?主要有以下两点原因线程安全性:多线程环境下,确保每一个线程只有一个EventLoop实例,这样就可以避免线程竞争条件,因为EventLoop内部大部分操作都是线程不安全的,必须让其所属线程
- python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响应能力
bug404_
python并发与并行python开发语言
前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregistersignalhandlers
- Jmeter压测记录
西电大侠
1、配置压测参数第一步,先启动jmeter,具体如下image.png配置相关参数image.pngimage.pngimage.pngnumberofthreads(线程数):就是模仿用户并发的数量,Ramp-up:运行线程的总时间,单位是秒。loopcount(循环次数):就是每个线程循环多少次。我现在的线程数是50,就是相当于有50个用户,运行线程的总时间是1秒。也就是说在这1秒中之内50个
- 【多线程服务器】多线程下网络编程
gma999
c++服务器
目录多线程模型-非阻塞IO+oneloopperthreadoneloopperthread线程池oneloopperthread与线程池结合目前主流多线程模型Reactor模式+线程池Proactor模式Master-Worker模型多线程编程的实现线程抢占问题Happens-Before关系Linux下多线程编程常用函数线程的创建线程销毁多线程下的I/ORAII与文件描述符管理RAII与for
- HCIA-Datacom实验日志(三)——OSPF路由协议基础实验
zMXD
网络
目录3.OSPF路由协议基础实验3.1实验组网拓扑3.2实验任务配置3.2.1设备基础配置3.2.2完成OSPF基本配置3.2.3配置OSPF认证3.2.4假设R1为所有网络的出口,所以在R1上向OSPF宣告默认路由3.2.5通过修改R1相应接口的Cost值,使得R1的LoopBack0接口通过R1->R3->R2的路径访问R2的LoopBack0接口3.3知识补充3.OSPF路由协议基础实验3.
- aiohttp: AttributeError: ‘NoneType‘ object has no attribute ‘get_extra_info‘
zzzzls~
Pythonpythonaiohttpasyncio
使用Proxyman分析aiohttp请求时遇到如上错误:报错环境系统:macPython:Python3.8.11aiohttp:3.8.0抓包软件:Proxyman解决方案:修改***/python3.8/site-packages/aiohttp/connector.py1211行:#注释如下行#runtime_has_start_tls=self._loop_supports_start_
- 2019-04-03
昊小淘淘
一.课程回顾网络环境检查1.检查IP地址1:lo:mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/12
- 前缀列表(ip-prefix)配置
可惜已不在
华为网络华为
一.实验简介本来前缀列表是要和访问控制列表放在一起讲的,但是这里单拎出来是为了更详细的讲解两者的区别1.前缀列表针对IP比访问控制更加灵活。2.前缀列表在后面被引用时是无法对数据包进行过滤的实验拓扑二.实验目的R4路由器中只引入子网LoopBack的最后一位为单数的子网实验配置R1:untermosyssysR1intg0/0/0ipadd192.168.12.124qospfrouter-id1
- netty源码解读三(NioEventLoop)
orcharddd_real
nettyjavanetty
NioEventLoop初始化EventExecutor类型的数组数组大小默认为cpu数量的两倍,遍历数组,通过newNioEventLoop(xxx)往数组中添加元素,NioEventLoop继承了EventExecutor;每次需要线程时,执行chooser的next方法从数组中取出一个线程;关键代码打开netty源码,找到example包下的EchoService类,追溯创建boss线程组和
- Netty源码分析:NioEventLoopGroup
HelloWorld_EE
netty源码分析源代码nettyEventLoop
Netty源码分析:NioEventLoopGroup在工作之余,看到自己公司的超哥(俞超)关于Netty的系列博文,讲解的很好,因此,自己在学习之余也跟了下源代码,来了解Netty,也做了相关的笔记,将形成系列博文,这是第一篇。超哥的博文地址在这里:http://www.jianshu.com/p/c5068caab217Netty版本:4.0.23.Final借用超哥的例子,一般服务端的代码如
- 基于事件驱动网络服务器实现
jlaij
c/c++
socket的事件类型有读事件(socket链接也属于读事件)、写事件、socket关闭事件事件处理方式无非就是添加事件、删除事件、分发执行事件大致逻辑就是:事件驱动的网络实现逻辑Loop: EventOp->dispatch() //由select或epoll进行事件监听 将监听的事件添加到事件列表里 for(ev:event_list): ifev&ev_read&&fd是serv
- 笔记整理—uboot启动过程(4)BL2干了什么及内存排布
TeYiToKu
X210嵌入式学习整理嵌入式硬件linuxc语言汇编
uboot的第一阶段结束于start_armboot,第二阶段的uboot代码主要负责soc外部硬件(inand、网卡、......)、uboot本身构建(uboot指令、环境变量、......)最后进入命令行,等待命令然后倒数,等待bootcmd,进入内核(uboot结束)。倒数期间通过回车打断进入如下代码,通过循环不去进入bootcmd。for(;;){main_loop();}typedef
- goto语句的1-100的和
唐人~
算法开发语言c语言c++物联网
这段C语言代码实现了一个简单的循环,用于计算从1到100的所有整数的和。intmain(){inti=1;//初始化一个整型变量i,赋值为1sum=0;//这里直接使用了sum变量,但没有声明,这在C99和C11标准中是不合法的。在实际代码中,应该先声明sum为整型变量并初始化为0,即:intsum=0;loop://定义一个标签loop,用于goto语句跳转sum+=i;//将i的值累加到sum
- RedisStack十部曲之二:Redis的核心概念
亻乍屯页女子白勺
Redisredis数据库缓存
文章目录键空间修改和查询键键过期遍历键空间客户端缓存在计算机科学中有两个难题客户端缓存的Redis实现跟踪模式的工作机制统一的键命名空间两种连接方式缓存策略Opt-in模式Opt-out模式广播模式NOLOOP选项避免竟态条件当与服务器失去连接怎么办什么值得缓存流水线请求/响应协议和往返时间(RTT)Redis管道这不仅仅是RTT的问题流水线VS脚本为什么在一台机器上进行死循环测试依旧很慢键空间通
- 学习大数据DAY14 PLSQL基础语法3
工科小石头
大数据培训学习sql大数据oracle
目录二重循环三种循环随便嵌套exitcontinuereturn作业数据提取游标隐式游标显示游标动态游标游标使用流程游标属性游标配合循环使用示例作业2参数游标currentof语句作业3PLSQL基础语法(三)二重循环三种循环随便嵌套beginfornin1..10loopdbms_output.put_line(n);forjin1..5loopdbms_output.put('*');endl
- Capture local packets using Wireshark 使用 wireshark 抓本地包
Chia-Te Kuan
http-flv經驗談分析工具测试工具网络
一般而言windows系統本地到本地ip的傳輸不會經過網卡,因此無法由wireshark捕捉解析,本文介紹wireshark同步安裝Npcap方式,藉此loopback本地ip到本地ip本文不推薦網傳routeaddmask255.255.255.255這個方法,因將大幅拖慢系統效率(所有本地到本地的包都要重新入網卡),甚者導致timeout而無法運行NetworkprogramGenerally
- 关于STM32运行时卡住问题
我与nano
stm32
最近在调试STM32H7的时候发现我运行突然卡住了,这个功能函数就只能执行一次,然后就用DEBUG查看卡在了哪里voidHardFault_Handler(void){/*GotoinfiniteloopwhenHardFaultexceptionoccurs*/while(1){}}使用DEBUG后发现卡在了这个循环里HardFault_Handler中断HardFault_Handler硬件中
- 9.8通宵速通javascript
山师第一深情
javascript开发语言ecmascript
由于正着已经光速通了一些基础语法了,所以这一步我们倒着来。并记录一些疑问从而从难到易去解决这些问题。23eventloop首先明确两个概念,分别是1调用栈javascript只有一个调用栈用于跟踪函数其他的就类似于任何语言的函数调用栈2任务队列异步任务在完成时会被添加到任务队列中,当调用栈为空的时候,也就是当下的函数全部执行完之后,会将这些已经完成的任务从任务队列中放入函数调用栈等待执行javas
- windows C++-并行编程-将使用缩减变量的 OpenMP 循环转换为使用并发运行时
sului
c++开发语言
此示例介绍如何将使用reduction子句的OpenMPparallelforloop转换为使用并发运行时。OpenMPreduction子句允许指定一个或多个线程专用变量,这些变量受并行区域末尾的缩减操作的约束。OpenMP预定义一组缩减运算符。每个减量变量必须是标量(例如int、long和float)。OpenMP还定义了一些限制,说明如何在并行区域中使用缩减变量。并行模式库(PPL)提供co
- RK3288下如何实现虚拟摄像头。
Open+
安卓androidarmlinux
提示:安卓、RK3288、虚拟摄像头文章目录前言一、v4l2loopback是什么二、ffmepg是什么三、ubuntu环境准备四、安卓源代码编译环境准备五、RK3288开发环境准备六、编译v4l2loopback。七、编译ffmepg八、编译安卓源代码九、v4l2loopback移植到RK3288上十、创建测试APP。十一、修改安卓系统相机源代码与编译。总结注意事项前言提示:由于项目技术要求,需
- netty-NioServerSocketChannel和boss NioEventLoopGroup 如何建立关系的
一个人的想法
javanetty
一、EventLoopGroupbossGroup=newNioEventLoopGroup();EventLoopGroupworkerGroup=newNioEventLoopGroup();1、boss或者workerNioEventLoopGroup初始化完成了一个NioEventLoop数组(默认机器核数的2倍)所有NioEventLoop持有了同一个Executor调用execute时
- 【iOS】RunLoop面试题总结 - 持续更新
cheng_lin0201
OCRunloopiOS底层原理iosobjective-c
面试题1.RunLoop和线程的关系?答:一个线程对应一个RunLoop主线程默认就有RunLoop子线程的RunLoop以懒加载的形式创建RunLoop存储在一个全局的可变字典里,线程是key,RunLoop是value2.RunLoop的运行模式答:Runloop的运行模式共有5种,RunLoop只会运行在一个模式下,要切换模式,就要暂停当前模式,重写启动一个运行模式3.RunLoop内部逻辑
- 【Oracle数据库】存储过程有几种循环方式?
A_aspectJ项目开发
sql语句sqloracle数据库
一.Oracle的循环在所有的编程语言中,循环都是一个非常重要的语法,掌握循环,是程序员必不可少的能力。在Oracle中,常用的有四种循环,loop循环,while循环,for循环和goto循环,在本篇文章中,会向大家分别介绍这几种循环的语法和实例。1.loop循环loop经常会与exitwhen关键字结合使用,具体语法如下:loop --开始循环的标志 loop_body; --要执
- 基础学习之——Netty
北欧人写代码
学习网络服务器
Netty是一个基于Java的网络通信框架,提供了一种简单、高效、可扩展的方式来开发网络服务器和客户端应用程序。Netty的设计目标是提供一种统一的异步编程模型,使得开发者能够轻松地编写可维护和可重用的代码。Netty的核心组件包括:Channel:网络通信的通道,可以用于读取、写入和关闭操作。EventLoop:负责处理I/O事件,包括接收、发送和处理数据。ChannelHandler:用于处理
- 一些基础知识
我就是杨过
Android方面Handlerhandlerlooper看官网使用gradle配置和使用都是干什么的android给开发者提供了哪些工具类TextUtils.isEmpty()安卓提供的开发类应该还有很多看看总结一下DataBindingAndroid提供了数据绑定技术所以要看Android官网的数据绑定通知的相关知识Android官网介绍的很详细Android版本控制以及在代码中的使用@Req
- Android之同一个Thread线程里只能有一个Looper?(ThreadLocal)
追梦的鱼儿
androidjavahandlerThreadLocalLooper线程
目录ThreadLocal的基本原理Looper和ThreadLocal的结合如何使用ThreadLocal的示例1.ThreadLocal变量的定义2.创建Looper实例3.获取Looper实例示例完整的示例总结同一个Thread线程里只能有一个Looper对象。在Android中,ThreadLocal是一个非常有用的工具,它允许你在每个线程中存储和访问独立的变量副本。Looper是Andr
- 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独立出来,数据持