- 阅读笔记:x86系统调用入门
yayong
Solarisx86solarissystempreprocessormakefilewrapper
阅读笔记:x86系统调用入门原作者:RussBlaine原文来自:http://blogs.sun.com/roller/page/rab译注者:BadcoffeeEmail:
[email protected]:http://blog.csdn.net/yayong2005年7月按:要开始学习像操作系统这样复杂的东东是一个令人头痛的问题。为了帮助新学者理清头绪,这里我们将讨论Sol
- 如何判断druid连接池存在连接泄漏
lang20150928
druidjava服务器数据库
jmap-histo:live27258|grep'com.alibaba.druid.pool.DruidConnectionHolder'这个命令中的27258是进程号假设返回的结果如下所示2050:5440com.alibaba.druid.pool.DruidConnectionHolder2644:1256[Lcom.alibaba.druid.pool.DruidConnectionH
- Spring Cloud Stream与RabbitMQ 死信队列
y_bccl27
RabbitMQ
RabbitMQ的TTL全称为Time-To-Live,表示的是消息的有效期。消息如果在队列中一直没有被消费并且存在时间超过了TTL,消息就会变成"死信"(DeadMessage),后续无法再被消费。引入SpringCloudStream与RabbitMQ整合的pom依赖,其版本为3.0.7.RELEASEorg.springframework.cloudspring-cloud-starter-
- android liveData更新UI数据
weixin_44693887
android
1.创建LiveData的javaBean对象publicclassModelBeanextendsLiveData{privateintflag;privateStringtime;privateStringbatteryStr;privateintbattery;//蓝牙连接状态privateintresourceId;privateBooleanisConnected;privateStri
- 【开发日志】数字人+LLM:从概念到实现的全程记录!
AI大模型-王哥
大模型学习大模型教程大模型人工智能LLM数字人大模型入门
数字人是各种技术的集合,所以文章尽可能完整的介绍,项目中涉及的大小模型均可在本地部署并在我本人机器上运行。系统环境:CPU:i91490016GBGPU:GTX40608GBSYS:Windows11WSL:Ubuntu22.04本文章使用到的技术内容:数字人框架:LiveTalking大模型:Llama3.1TTS:GPT-SoVits语音转视频:Wav2Lip前端展示:WebRTC项目整体架构
- 106.map 和 switchMap
我也念过晚霞
android
相同点与不同点:相同点:都是LiveData的转换函数:它们都用于转换一个LiveData对象,并返回一个新的LiveData对象。都使用lambda表达式进行转换:它们都接收一个lambda表达式作为参数,用于定义转换的逻辑。生命周期感知:转换后的LiveData同样具有生命周期感知能力,只有在观察者处于活动状态时才会传递数据。不同点:特性mapswitchMap转换方式map对原始LiveDa
- Android技术栈(四)Android-Jetpack-MVVM-完全实践
2401_85112677
作者\/androidandroidjetpack
本文包含Android中MVVM体系中的很多部分,主要对ViewModel+DataBinding+RxJava+LiveData+Lifecycle等笔者所使用的技术体系进行解析.本文字数较多,内容较为完整并且后续还会追加更新,阅读本篇文章需要较长时间,建议读者分段阅读.所有文字均为个人学习总结和理解,仅供参考,如有纰漏还请指出,笔者不胜感激.1.1配置环境笔者的AndroidStudio版本=
- 浏览器支持的通讯协议
Bl_a_ck
通讯协议vue.js前端websocket网络协议tcp/iptcpdump网络安全
浏览器支持的通讯协议1.HTTP(HyperTextTransferProtocol)版本HTTP/1.0:每次请求都需要重新建立连接。HTTP/1.1:支持持久连接(Keep-Alive),减少连接开销。HTTP/2:多路复用(Multiplexing),提高性能。HTTP/3:基于QUIC协议,减少连接延迟。用途:网页访问、API请求、RESTful通信等。2.HTTPS(HyperTextT
- ThreadPoolExecutor 详解
java
一、ThreadPoolExecutor核心参数构造函数如下:publicThreadPoolExecutor(intcorePoolSize,//核心线程数intmaximumPoolSize,//最大线程数longkeepAliveTime,//非核心线程空闲存活时间TimeUnitunit,//存活时间单位BlockingQueueworkQueue,//任务队列RejectedExecut
- 香港服务器远程超出最大连接数的解决方案是什么?
网硕互联的小客服
安全windowslinux运维服务器
当在香港服务器上远程连接数超出最大限制时,可以采取以下解决方案:增加最大连接数限制:可以通过修改服务器的配置文件(如/etc/ssh/sshd_config)来增加最大连接数限制。找到MaxSessions或MaxStartups参数并适当增加其值。优化连接超时设置:调整SSH服务器的连接超时设置,以便及时释放空闲连接资源。通过调整ClientAliveInterval和ClientAliveCo
- openEuler系统之使用Keepalived+Nginx部署高可用Web集群
江湖有缘
Linux技术学习nginx前端keepalivedwebopneEuler
Linux系统之使用Keepalived+Nginx部署高可用Web集群一、本次实践介绍1.1本次实践简介1.2本次实践环境规划二、keepalived介绍2.1keepalived简介2.2keepalived主要特点和功能2.3使用场景三、Keepalived和Nginx介绍3.1Nginx简介3.2Nginx特点四、master节点安装nginx4.1安装nginx软件4.2编辑index.
- LVS Keepalive实现负载均衡与服务器集群的群集软件详解与安装
IqFlask
lvs负载均衡服务器
负载均衡是构建高可用和高性能服务器集群的重要组成部分。LVS(LinuxVirtualServer)是一种开源的负载均衡解决方案,它可以通过使用Keepalive软件实现对服务器集群的群集管理。本文将详细介绍LVSKeepalive的实现原理,并提供安装和配置的源代码示例。LVSKeepalive的实现原理LVSKeepalive通过在服务器集群中的每台服务器上运行Keepalive软件,实现对服
- keepalived+mysql主从自动切换_使用keepalived实现对mysql主从复制的主备自动切换
PTE柒加
,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能.模拟环境:VIP:192.168.1.197:虚拟IP地址Master:192.168.1.198:主数据库IP地址Slave:192.168.1.199:从数据库IP地址备注
- 【常用0x000000类型颜色代码表】
萌虎不虎
androidjava
常用0x000000类型颜色代码表"black"=>array(0x000000),黑色"maroon"=>array(0x800000),栗色"green"=>array(0x008000),绿色"olive"=>array(0x808000),橄榄色"navy"=>array(0x000080),藏青色"purple"=>array(0x800080),紫色"teal"=>array(0x00
- 自制游戏——斗罗大陆
醉翁之意不在酒.max
C++自制小游戏游戏c++
很简陋,没有图,请见谅//mine[0]=级数//mine[1]=战力//mine[2]=1==白虎//mine[2]=2==昊天锤//mine[2]=3==蓝银草#includeusingnamespacestd;intmine[100],live=3,dou=1,luo=1,da=1,bag[1000],huan=0,liang=30;longlonghuannian[100];voidjia
- keepalived+timescaladb主备切换高可用方案
handsomestWei
数据库keepalivedtimescaladbpostgresql数据库高可用
keepalived+timescaladb主备切换高可用方案环境和组件依赖ubuntu22.04,docker引擎keepalivedv2.2.4timescaledbdocker镜像wjy2020/timescaledb-repmgr:pg14.15-ts2.17.2,镜像使用参考方案思路在双机分别部署这两个组件,keepalived定时检测timescaladb数据库的主备状态,当数据库状态
- PCDN单线单迁
黑石云
边缘计算
在PCDN行业中,单线单迁指的是一种特定的内容分发和传输模式。以下是对该模式的详细解释:一、定义PCDN(PeertoPeerContentDeliveryNetwork)即点对点内容分发网络,它结合了P2P(点对点)和CDN(内容分发网络)技术的优势。在PCDN行业中,单线单迁特指在内容分发过程中,每个节点(即用户设备)仅通过单一的线路进行数据的接收和发送。二、特点线路单一:与汇聚模式(即一个地
- PCDN的拨号功能
黑石云
边缘计算
PCDN拨号,具体指的是通过特定的网络连接方式(如PPPoE、PPTP、L2TP等)建立互联网连接的过程,以便设备可以作为节点加入到个人内容分发网络(PersonalContentDeliveryNetwork,PCDN)中。这种拨号过程对于确保设备能够正确接入互联网并成为有效的PCDN节点至关重要。以下是关于PCDN拨号的一些关键点:1.定义PCDN拨号是指用户端设备(例如电脑、安卓电视盒子等)
- 边缘计算收益稳定
黑石云
边缘计算
要使自己的PCDN(PersonalContentDeliveryNetwork,个人内容分发网络)收益更稳定,可以从以下几个方面进行努力:一、选择合适的PCDN平台平台稳定性:选择技术成熟、稳定性高的PCDN平台,确保内容分发的高效性和可靠性。收益模式:了解平台的收益模式,选择适合自己的结算方式和分成比例,确保收益的稳定性和透明度。技术支持:选择提供良好技术支持和售后服务的平台,以便在遇到问题时
- 自制游戏-斗罗大陆
白昼中的流星
游戏
#includeusingnamespacestd;doubleji=0,mony=100,xiuzhen=0,zhugeliannu=0,kongquiyu=0,baoyulianhuaczhen=0,live=3;longlongzhan=0;intGame(){coutnum(5,10);inthun=num(reng);_sleep(1*2000);if(hun==5||hun==6||h
- <Tauri>tauri2.0框架下,基于qwik(前端)和rust(后端)结合的桌面程序体验
机构师
前端rust后端GUItauriqwik
关于qwikQwikisanewkindofwebframeworkthatcandeliverinstantloadingwebapplicationsatanysizeorcomplexity.Yoursitesandappscanbootwithabout1kbofJS(regardlessofapplicationcomplexity),andachieveconsistentperfor
- 一文详细介绍GitLab CI/CD
思考的下一页
Wi-Fi经验gitlabci/cd
GitLabCI/CD是GitLab内置的一套自动化工具,它帮助开发团队实现持续集成(ContinuousIntegration,简称CI)和持续交付/持续部署(ContinuousDelivery/Deployment,简称CD)。下面将以简单易懂的语言,从基础概念到工作流程,为小白朋友详细介绍这一工具。1.什么是持续集成和持续交付/部署?持续集成(CI)持续集成的核心思想是“频繁地将代码合并到
- 【音视频】RTSP拉流: RTP协议头部详解(二)
自由柿
音视频
此文为系列文章,此系列主要讲解RTSP客户端的拉流及播放,文章持续更新,会从rtsp的基本协议讲起,如何一步步实现音视频的拉流过程,包括一系列涉及到的协议,rtsp,sdp,rtp(本系列文章的核心内容会放在rtp协议,会重点介绍讲解rtp负载部分),rtcp,从rtp解析aac,h264数据帧,得到帧后如何交给解码库(ffmpeg,libVLC,live555等)进行解码,音视频同步并播放音
- 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?思维导图 代码示例(java 架构)
用心去追梦
java架构python
解决消息队列的延时、过期失效问题以及应对消息积压的情况,需要从多个角度进行优化和管理。以下是针对这些问题的一些策略和技术:解决消息队列延时及过期失效问题的方法设置消息TTL(Time-to-Live)为消息设置生存时间(TTL),超过此期限的消息将自动被丢弃或转发到死信交换器。这有助于防止长时间未处理的消息占用资源,并确保及时清理无效消息。配置死信交换器(DeadLetterExchange,DL
- 长连接 Web
biyukai88
长连接推送
一、什么是长连接HTTP1.1规定了默认保持长连接(HTTPpersistentconnection,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。HTTP首部的Connection:Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1.1RFC2616文档没有对它做说明,因
- 缓存组件<keep-alive>
Live&&learn
组件缓存
缓存组件1.组件作用组件,默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。2.使用场景场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件使用:KeepAlive|Vue.js,参考官网即可。场景2:路由切换回来时如果需要保持当前路由界面下的状态,就需要使用缓存。使用:1.定义路由时添加字段标识isKeepAlive,防止缓存所有路由{"path":"/hom
- 解决 keep-alive 缓存组件中定时器干扰问题
像素检测仪
前端vue3vue2缓存前端vue.js
当使用keep-alive缓存组件时,组件中的定时器可能会在组件被缓存后继续运行,从而干扰其他组件的逻辑。为了避免这种情况,可以通过以下方法解决:1.在组件的deactivated钩子中清理定时器keep-alive为缓存的组件提供了activated和deactivated生命周期钩子。可以在deactivated钩子中清理定时器,确保组件被缓存时不会继续运行定时器。exportdefault{
- 大学英语精读第三版(第五册)学习笔记(原文及全文翻译)——7B -Three Days to See(假如给我三天光明)
预见未来to50
英语翻译作品英语精读海伦·凯勒视觉生活感悟珍惜感官体验
Unit7B-ThreeDaystoSeeThreeDaystoSeeHelenKellerSometimesIhavethoughtitwouldbeanexcellentruletoliveeachdayasifweshoulddietomorrow.Suchanattitudewouldemphasizesharplythevaluesoflife.Weshouldliveeachdaywi
- CSS,JS代码压缩,CDN托管,图片整合。
cherryfoxmeng
前端之路
CSS,JS代码压缩,CDN托管,图片整合。CSS,JS代码压缩:webpack的UglifyJsPlugin压缩插件gulp的gulp-uglify,gulp-minify-css模块完成CDN:CDN的全称是ContentDeliveryNetwork,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使
- UDP协议转换TCP协议
在下陈平安
网络通信
UDP协议转换TCP协议项目背景:项目类似中间件作用是数据搬运,可以搬运文件,视频,音频。从互联网把数据搬运到内网中。有的时候拉取视频流数据的时候使用UDP拉取会存在丢包的情况通过TCP拉拉取视频流数据再通过UDP发送这样可以保证质量也能提高效率。着重说明协议转换使用的技术1.netty2.scoket过程描述测试利用两个视频开源平台LiveGBS一个放在内网中充当视频播放设备此处命名为SPA2一
- 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独立出来,数据持