- Reactive 编程-Vert.x
Flying_Fish_Xuan
python开发语言
Reactive编程与Vert.x:高效异步Java微服务框架一、什么是Reactive编程?Reactive编程是一种异步编程范式,专注于数据流和事件的传播处理。与传统的阻塞式编程不同,Reactive编程能够更好地处理高并发和异步操作,特别适合实时系统、流处理以及需要快速响应的场景。Reactive编程的核心原则包括:响应性(Responsive):系统能够快速响应用户请求,并保持低延迟。弹性
- python快速实现dbc转excel
大柠檬鲸
python开发语言
步骤1-安装canmatrix包打开cmd输入:python-mpipinstallcanmatrix步骤2-打开要转换dbc所在的文件夹路径步骤3-在下图的路径框中输入cmd后直接按回车键步骤4-输入cmd在弹出的cmd中输入canconvertxxx.dbctarget.xlsx其中xxx.dbc为要转换的dbc,target.xlsx为输出的excel在当前路径下即生成转换后的excel
- 嵌入式数据库 QuickIO 诞生记
artbits
java数据库嵌入式实时数据库
QuickIO的诞生背景一年前,我在业余时间编写一个后端项目,项目使用的技术栈是JavaVert.x+MongoDB。Vert.x是一个事件驱动的网络应用程序框架,因其异步响应的特性,读写MongoDB时不可避免要编写大量异步回调的代码。“回调地狱”现象的产生,让代码的可读性逐渐下降。Vert.xMongoDBClient相关代码示例:JsonObjectdocument=newJsonObjec
- springboot与vertx异步并发对比
千寻_GHSA
springboot目前主要还是阻塞式响应,需要等到服务端计算完成,才会返回。vertx本身异步响应,客户端发出请求后,服务端计算完成后,通知返回。系统的处理能力会大大提升。针对同样的业务,做一个200并发的测试springbootspringboot的average在165秒vertxvertx的average在85秒从cpu的使用率对比vertx的CPU使用率较低;springboot的CPU
- 从零开始手写mmo游戏从框架到爆炸(零)—— 导航
专业的程序员
从零开始MMO游戏游戏
从今天开始我们尝试从零开始写一个mmo的游戏。主要技术还是netty。参考了网上很多的大神的框架,本来希望基于ioGame或者vert.x等来直接写功能的,觉得从零开始更有意义,而且咱们也不需要太NB的底层功能,够用就行。下面是导航:从零开始手写mmo游戏从框架到爆炸(一)—开发环境-CSDN博客从零开始手写mmo游戏从框架到爆炸(二)—核心组件抽离与工厂模式创建-CSDN博客从零开始手写mmo游
- vertx添加后获取记录id
Levi_9d29
直接用户queryWithParams方法执行添加sql就可以了,如果是postgresql需要在sql语句最后加上returningid,其他数据库没试过
- 程序媛在公司的进修之路(三)
小芹菜_4d69
这次隔了两周,因为是双周任务和总结,学习任务如下:学习vertx框架,重点学习core、web、dataaccess三个组件。在这之前自己什么框架也没有学过,包括MVC,,,,所以完全不知道该如何入手。大体自己的学习思路如下:1、直接上官网:https://vertx.io/docs/#web看手册,了解相关的概念的知识,运行出第一个helloword(例子都是官网现成的)。这里英文不好的就去看中
- 使用 curl multi interface 编写的高性能封装类和示例
fishjam
HTTPCurl性能优化curlmultiinterfaceHTTP
CurlMultiDemo使用libCurl的MultiInterface的一个简单封装类,支持功能:单线程+纯异步的Get/Post支持极高的性能(使用POST上传600+文件,仅耗时4~6秒)使用方式:1.编译或下载libcurl库,我采用的是vcpkg2.搭建或找一个支持MultiPart上传文件的服务器,如没有,可以使用vertx-upload3.VisualStudio(2015)打开工
- 极客时间-《左耳听风》文章笔记 + 个人思考
CodeCooI
极客时间笔记
极客时间-《左耳听风》文章笔记+个人思考分布式架构21|分布式系统架构的冰与火分布式架构21|分布式系统架构的冰与火比较流行的高并发框架:Node.js:是一个基于ChromeV8引擎的JavaScript运行环境,它使用事件驱动、非阻塞I/O模型,非常适合处理高并发请求。Vert.x:是一个基于Java的轻量级、高性能、异步编程框架,它可以用于构建反应式、高并发的网络应用。SpringReact
- sklearn线性模型之Lasso回归
微小冷
#sklearnsklearn回归人工智能LassopythonLassoCV
文章目录Lasso简介Lasso类LassoCVLasso简介Lasso,即TheLeastAbsoluteShrinkageandSelectionOperator,是用于拟合稀疏系数的线性模型,其最小化目标函数为minw12n∥Xw−y∥22+α∥w∥1\min_w\frac{1}{2n}\VertXw-y\Vert^2_2+\alpha\Vertw\Vert_1wmin2n1∥Xw−y∥2
- 通俗地讲,Netty 能做什么?
蜀州凯哥
Java高级技术系列java经验分享
前言:tomcat一度是web容器的标准,但是tomcat的并发量却只有200-400之间,即使现在有了aio模式,也没有提升太多。所以现在大部分都是使用netty作为高性能服务器框架,在dubbo,vert.x,gateway等等开源项目中都使用了,那么netty为什么深受喜爱?下文将带你寻找答案目录(1)IO模型(2)zero-copy(3)堆外内存(4)高性能对象池阅读netty会发现net
- sklearn岭回归
微小冷
#sklearnsklearn回归人工智能python岭回归
文章目录基本原理sklearn实现基本原理最小二乘法的判定条件是minw∥Xw−y∥22\min_w\VertXw-y\Vert_2^2wmin∥Xw−y∥22其中,minwF(w)\min_wF(w)minwF(w)表示F(w)F(w)F(w)最小时的www;www是拟合参数,x,yx,yx,y是变量。对于线性问题,可通过对www求导,得到F(w)F(w)F(w)极值处的www,具体表达式为
- Hazelcast使用详解
有梦想的攻城狮
架构设计hazelcast缓存
使用介绍主要优缺点应用场景Java使用案例安装部署单节点部署集群部署最新版本特性介绍架构设计作为集群管理器的使用示例监控管理工具Hazelcast与SpringBoot整合Hazelcast与Vert.x的整合Hazelcast作为Vert.x的集群管理器的使用案例使用介绍Hazelcast是一个开源的分布式数据结构库,主要用于在Java应用程序中提供高可用性、数据分布、缓存等功能。它支持多种分布
- Vert.x-Core-0.写在前面
悠扬前奏
Vert.x的核心是一组被称为“Vert.xCore”的JavaAPI。仓库Vert.x提供了以下功能:编写TCP客户端和服务器编写支持WebSockets的客户端和服务器事件总线共享数据-局部map和集群中的分布式map定时和延迟的任务部署和卸载Verticle数据报套接字DNS客户端文件系统的访问高可用本地传输集群核心中的功能都很底层,类似数据库访问,权限控制或者高级web功能在Vert.xe
- Vert.x学习笔记-什么是事件总线
有梦想的攻城狮
vert.xvertx事件总线vert.xeventBus
广义事件总线介绍Vert.x的事件总线Vert.x的事件总线的实现方式Vert.x的事件总线通信模式事件总线与消息队列的区别点对点通信模式请求-应答通信模式发布-订阅通信模式Vert.x的事件总线应用场景Vert.x的事件总线消息Vert.x的事件总线消息示例Vert.x的事件总线的消息类型拓展广义事件总线介绍事件总线是一种集中式事件处理机制,它允许不同的组件之间进行彼此通信而又不需要相互依赖,从
- 2019-01-19
喀喀喀580
gitreset--hardxxx,gitreset--softxxx与gitrevertxxx三者作用都是用来撤销某项操作,只是工作的领域和方式不同.gitreset--softxxximagegitreset--hardxxxhard(修改版本库,修改暂存区,修改工作区)imagegitrevertxxxrevert--gitrevert也是撤销命令,区别在于reset是指向原地或者向前移动指
- vertx写sip服务器
帐篷Li
开源视频联动物联网平台流媒体开发服务器运维
Vert.xSIP模块默认使用TCP协议进行通信。如果您需要支持UDP协议,您需要自定义SIP协议栈,并在其中实现UDP传输。以下是一个示例代码,演示如何在Vert.x中创建一个支持UDP的SIP服务器:importio.vertx.core.net.SocketAddress;importio.vertx.ext.SIP;importio.vertx.ext.SIP.Method;importi
- vertx 写sip协议
帐篷Li
开源视频联动物联网平台网络服务器运维
Vert.x是一个用于构建响应式系统的工具包,它支持多种协议,包括SIP。要在Vert.x中编写SIP协议,您需要使用Vert.xSIP模块。以下是在Vert.x中编写SIP协议的一般步骤:添加依赖项:在您的项目中添加Vert.xSIP模块的依赖项。创建SIP服务器:使用Vert.xSIP模块创建一个SIP服务器。您需要指定服务器的地址和端口号。创建SIP路由:在您的SIP服务器上创建SIP路由。
- git reset --hard xxx , git reset --soft xxx , git revert xxx 的区别
这是余传书简书
gitreset--hardxxx,gitreset--softxxx,gitrevertxxxgitrevert三者区别三者作用都是用来撤销某项操作,只是工作的领域和方式不同。gitresetgitreset常用于代码回滚,是直接删除指定的commit,但是文件和修改会移动到workspace工作区。gitreset--softxxx从暂存区撤回。soft命令会让版本回到某次commit后的状态
- 基于 Java8 的国产开源 IoT 企业级物联网平台
AIoT科技物语
网络运维大数据人工智能java
JetLinks基于Java8,SpringBoot2.x,WebFlux,Netty,Vert.x,Reactor等开发,是一个开源的企业级物联网基础开发平台,实现了物联网相关以及相关业务开发的众多基础功能,能帮助你快速建立物联网相关业务系统。核心特性完全开源(社区版免费),基于事件驱动,拓展性强.支持统一物模型管理,多种设备,多种厂家,多种报文,统一管理。统一设备连接管理,多协议适配(TCP,
- 实体、DataTable、json、xml互转
ylattx
C#.netcore.netjsonxmlc#
需要用到Newtonsoft.Json//////将xml转换datatabe/////////publicstaticDataTableConvertXMLToDataTable(stringxmlData){DataSetdsData=newDataSet();dsData.ReadXml(newXmlTextReader(newStringReader(xmlData)));DataTabl
- vertx常用方法示例
wbkys
vertxrestful后端javavertx
一、多个回调如何避免回调地域方法:使用compose与Future示例1:按顺序执行里面的回调方法//回调方法1privateFuturegetStatus1(Stringid){returnFuture.future(f->{f.complete(true);});}//回调方法2privateFuturegetStatus2(booleanid){returnFuture.future(f->
- java事件驱动框架
策马踏清风
Vert.x是一款依托于Netty的事件驱动的框架,相对于传统的服务器架构,更加轻量级,高性能。springWebFlux是随着Spring5推出的响应式web框架。基于HTTP/ReactiveStreams,运行环境需要支持异步运行的环境,如Netty、Undertow。开发模式上支持SpringWebMVC风格的注解@ControllerRequestMapping和java8的lambda
- vertx学习
一户董
杂学习
写在前面新公司用到了vertx,所以这里学习下。源码。1:vertx是啥?是个框架吗?不是。只是一个工具类,只不过提供的功能比较全面,如http,websocket,tcp,json处理,定时任务,文件IO等。2:Vert.xCore核心对象io.vertx.core.Vertx。2.1:定时器//使用vertx执行定时执行任务@TestpublicvoidtimerWithVertx()thro
- vertx系列
一个带着思想做开发的人
分布式技术
vertx系列第一节1:谈下博主如何解除到vertx,目前大多公司用到的都是spring体系,但是博主在工作中,,感觉spring体系特别笨重,无论是国内,出的springalibaba等。不可否认,他们对java生态的分布式,做了很多。但是用起来还是特别重,性能比较低,有人说,用java就不要谈性能。java的性能不如go,很重要在于他的线程模型,后来,博主感觉,想自己去实现一套异步的分布式架构
- Vert.x学习笔记(一) Vert.x 核心包
Msro
json网络运维
Vert.x是一个事件驱动的JVM上的框架,可以帮助我们构建现代、灵活、可扩展的程序。Vert.x有多种语言的版本,可以用在Java、Kotlin、Scala、Groovy、Ruby等语言上。当然现在讨论的是如何在Java上使用Vert.x。Vert.x是一个比较大的框架,包含了各个方面的功能。所以我决定写几篇文章,分别来介绍这些功能。所以今天先来看看Vert.x最核心的一些功能吧,这些功能都在v
- Vert.x学习笔记-什么是Verticle
有梦想的攻城狮
vert.xvert.xverticleworkercontext
什么是VerticleVerticle是Vert.x应用中的基本编程单元,类似于Java中的Servlet、PojoBean或Akka中的Actor。它可以使用不同的编程语言实现,并且这些由不同编程语言实现的Verticle可以封装到一个模块中,进而部署到一个Vert.x应用中。Verticle可分为两种类型:标准Verticle和WorkerVerticle。标准Verticle运行在Vert.
- [USACO2012-Mar-Silver] Flowerpot 题解(单调队列 c++)
上烟雨心上尘
题解c++算法开发语言
[USACO12MAR]FlowerpotS题解(单调队列c++)题目链接:[USACO2012-Mar-Silver]Flowerpot题意:给你n个点,每个点有对应的x,y确认是否存在两个点,在y1,y2y_1,y_2y1,y2满足要求的情况下,输出最小的∣x2−x1∣\lvertx_2-x_1\rvert∣x2−x1∣思路:如果暴力的话,我们就考虑对于每一个点,寻找其对应的∣y1−y2∣>=
- Vert.x Java开发指南——第三章 重构为独立可重用的Verticle
猿学堂
感兴趣的朋友,可以关注微信服务号“猿学堂社区”,或加入“猿学堂社区”微信交流群版权声明:本文由作者自行翻译,未经作者授权,不得随意转发。通过第一次迭代,我们得到了一个可工作的Wiki应用。然而它的实现存在以下问题:HTTP请求处理和数据库访问代码交织在相同的方法中。大量配置数据(如端口号、JDBC驱动等)是代码中的硬编码字符串。3.1架构和技术选择第二次迭代是关于重构代码为独立可重用Verticl
- vert.x 学习笔记
weixin_30551963
数据库人工智能json
Verticle一个verticle是部署在Vert.x.单位每个verticle包含启动它的主要手段。一个应用程序可以是单个verticle或者可以由与彼此经由事件总线通信的多个verticles的。Verticles在Vert.x实例中运行。每个Vert.x实例在其自己的JVM实例运行,并且可以承载多个verticles。一个Vert.x实例确保verticles彼此通过运行每个在其自己的类加
- 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独立出来,数据持