- Pod调度、嵌入式脚本、Pod标签管理
yanjiaweiya
云原生kubernetes容器
多容器Pod案例3排错[root@master~]#vimweb2.yaml---kind:PodapiVersion:v1metadata:name:web2namespace:defaultspec:containers:-name:nginximage:myos:nginx-name:apacheimage:myos:httpdstatus:{}[root@master~]#kubectla
- Mac电脑 触摸板增强工具 BetterTouchTool
fengyun2891
macos
BetterTouchToolmac版,是一款触摸板增强工具,允许用户使用各种手势来控制其计算机。Bettertouchtoolmac是一个小而高效的macOS应用程序,旨在帮助您为手势定义快捷方式。此外,Bettertouchtool可用于使用常规鼠标和键盘快捷键,并提供伴侣iOS应用程序:您可以使用移动设备来控制计算机。原文地址:BetterTouchToolMac中文触摸板增强工具
- ThinkPHP 如何在生产环境中配置日志?
深山技术宅
PHP经验数据库php后端ThinkPHP
在ThinkPHP生产环境中配置日志时,需要重点关注稳定性、性能和安全。以下是最佳实践配置方案:生产环境推荐配置(config/log.php)return['default'=>env('log.channel','stack'),'channels'=>[//组合通道(核心配置)'stack'=>['type'=>'stack','channels'=>['daily','error_file
- curl --resolve
雨声不在
curl
curl--resolve是一个用于在发起HTTP请求时,临时修改域名解析的选项。它允许你指定某个域名解析到某个特定的IP地址,而不使用系统默认的DNS解析结果。这个选项在测试、调试或者绕过某些DNS问题时非常有用。基本语法:curl--resolvehost:port:address:指定要修改解析的域名、端口和对应的IP地址。URL:请求的目标URL。作用:当你使用curl--resolve时
- 云存储中包含哪些存储种类?
wanhengidc
服务器运维
云存储属于是一种计算机数据存储模式,能够将数据数据信息存储在异地服务器中,这种存储方式通常是由第三方提供商进行维护和管理的,用户可以通过公共或私有互联网连接来访问相关数据信息,同时,在云存储当中还有着三种常见的存储类型,为对象存储、文件存储和块存储,下面我们就来具体了解一下这三种存储类型吧!对象存储是一种将数据信息存储为对象的方式,对象存储主要是用于存储非结构化的数据信息,比如视频、图片和音频等内
- ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory
Upper999
Docker运维linuxdocker
1通过Dockerfile方式,生成镜像时报错(如下)[zxx@192~]$dockerbuild-tmy_first_build_image.[+]Building0.1s(1/1)FINISHEDdocker:default=>[internal]loadbuilddefinitionfromDockerfile0.0s=>=>transferringdockerfile:2B0.0sERRO
- 从0开始学习计算机视觉--Day08--卷积神经网络
之前我们提到,神经网络是通过全连接层对输入做降维处理,将输入的向量通过矩阵和激活函数进行降维,在神经元上输出激活值。而卷积神经网络中,用卷积层代替了全连接层。不同的是,这里的输入不再需要降维,而是可以保留输入的空间结构,例如输入的是32×32×3的图片,在全连接层中是3072×1的向量,而卷积层里则保持不变。这里的改变的地方是对于同样的WX的函数形式,这里是把5×5×3的权重矩阵(也叫卷积核)向量
- C# List源码分析
上班摸鱼君
c#listwindows
关键属性publicclassList:IList,System.Collections.IList,IReadOnlyList{privateconstint_defaultCapacity=4;privateT[]_items;[ContractPublicPropertyName("Count")]privateint_size;privateint_version;[NonSerializ
- vue项目中使用nodejs实现登录
芜湖湖湖湖
nodejsvuemysqljavascript
用vue,nodejs,mysql做的一个登录的页面代码放完的话有点麻烦,只放实现功能的代码把。vue部分:exportdefault{data(){return{loginForm:{username:'',password:'',},//下面两行是vuelogo的不用理会circleUrl:require('../assets/logo.png'),size:100}},methods:{su
- 源码视角下C++文件系统的缓存机制设计与性能优化策略
~郭俊辉@
c++
在计算机文件系统中,缓存机制是提升I/O性能的关键技术之一。C++作为面向系统底层开发的语言,在构建文件系统时,缓存机制的设计与实现直接影响着数据读写效率和系统整体性能。本文将从源码角度出发,深入剖析C++文件系统中缓存机制的设计理念、实现方式以及相关性能优化策略。一、缓存机制的核心作用与设计目标文件系统的I/O操作往往涉及磁盘等低速存储设备,相比内存访问,磁盘读写速度慢几个数量级。缓存机制的引入
- MySQL8数据库高级特性
KellenKellenHao
oracle数据库sql
创建测试表 createdatabasejxcharactersetutf8; usejx; my>descusers; +----------+-------------+------+-----+---------+----------------+ |Field |Type |Null|Key|Default|Extra | +----------+-------------+--
- js FileReader对象
刘建状
jsjavascript前端开发语言
FileReaderd对象Document读取文本文件/**FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据。*FileReader的实例拥有4个⽅法,其中3个⽤以读取⽂件,另⼀个⽤来中断读取*方法:*abortnone用于中断读取读取*readAsBinaryStringfile将文件读取为二进
- JavaScript中 FileReader 对象详解
前端 贾公子
前端基础笔记
目录1.简介属性方法事件处理2.FileReader对象的使用2.1基本使用2.2事件处理2.3node操作文件1.简介FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据。其中File对象可以是来自用户在一个元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的DataTransfer
- 电工电气仿真APP专辑
电工电气仿真APP专辑电工电气仿真软件能够构建虚拟的电气系统模型,并在计算机上运行这些模型以预测实际系统的行为。通过仿真,工程师可以测试不同的设计方案、优化系统性能、评估故障情况,并在实际构建系统之前进行详细的验证。电工电气仿真APP专辑-SimappsStore-工业仿真APP商店开关仿真,测试设计,优化参数,提前预知开关性能!开关仿真可以帮助工程师预测开关在实际工作中的行为,并评估其性能。通过
- C语言基础第1天:数据类型、常量
一、数据类型(一)数据类型的定义数据类型是固定大小内存的别名,它描述了变量存放数据的类型,其核心作用是组织和操作数据。计算机要处理的数据包括数字、字符串、文字、符号、图片、音视频等,数据类型不仅助力这些数据的组织与操作,还决定了程序对内存的有效利用方式。同时,了解数据类型的内存需求是理解计算机管理和操作数据的关键,因为程序运行依赖内存。(二)数据类型的分类基本类型(C语言内置)1.数值类型整型(整
- C 语言:20250708笔记
遇见尚硅谷
c语言笔记开发语言
内容提要C语言概述数据类型常量变量C语言概述计算机基础计算机的组成计算机组成计算机:能进行计算以及逻辑处理的设备硬件:组成计算机的物理部件。(内存条、CPU、硬盘..)开发中对于硬件的认知:硬件包括电子设备、单片机、集成电路和嵌入式系统。软件:计算机中运行的程序和数据。开发中对于软件的认知:软件分为系统软件(OS)、应用软件和编程工具(编译器)计算机的六大部件中央处理器(CPU):控制+计算内存:
- leetcode(Hot100)——数组篇
1、两数之和本题使用哈希法,用一个哈希Map保存数组的值以及对应下标,代码如下:classSolution{publicint[]twoSum(int[]nums,inttarget){HashMapmap=newHashMap>groupAnagrams(String[]strs){Map>map=newHashMaplist=map.getOrDefault(key,newArrayList(
- 网络渗透2 指纹识别
郭莉914
网络安全web安全
一.指纹识别指纹由于其终身不变性、唯一性和方便性,几乎已成为生物特征识别的代名词。通常我们说的指纹就是人的手指末端正面皮肤上凹凸不平的纹线,纹线规律的排列形成不同的纹型。而本节所讲的指纹是指网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等。在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。C
- Python打卡:Day40
#先继续之前的代码importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorch.utils.dataimportDataLoader,Dataset#DataLoader是PyTorch中用于加载数据的工具fromtorchvisionimportdatasets,transforms#torchvision是一个用于计算机视觉的库,
- 网络渗透中的指纹识别
jhf200306
web安全
主要内容:指纹是网站CMS指纹识别,计算机操作系统及web容器的指纹识别。1.CMS:(contentmanagementsystem)整站系统或文章系统作用:开发者只要给客服一个软件包,客服自己安装配置好,可以定期更新数据来维护网站,节省了大量的人力和物力。常见的CMS:Dedecms(织梦),Discuz,PHPWEBPHPWIND,PHPCMS,ECSHOP,WordPress(wp)等。(
- Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http
设计师Linda
运维docker
镜像拉取用了官方库,dockerpull一直超时,如果是桌面版到Settings->DockerEngine修改配置指定国内镜像加速源{"builder":{"gc":{"defaultKeepStorage":"20GB","enabled":true}},"experimental":false,"registry-mirrors":["https://docker.m.daocloud.io
- 编写程序银行管理系统python_阿里巴巴:这套java+python视频教程正是让你进入大厂的必备材料...
原标题:阿里巴巴:这套java+python视频教程正是让你进入大厂的必备材料Java在世界最流行计算机编程语言排行榜占据榜首多年。它是一种可以编写跨平台应用软件的面向对象的程序设计语言,业内人士预计在3~5年内Java技术开发商将发展到上百万。我们相信,Java发展之路将带我们去到更加令人神往的远方。Java的前景一片辉煌!现如今有很多小伙伴抱怨学习java有点费劲,没有好的资料进行学习和锻炼,
- docker搭建redis哨兵模式集群-docker搭建redis哨兵模式集群
docker搭建redis哨兵模式集群一、搭建redis一主两从集群1.创建docker网络,为了容器间相互通信2.运行redis容器3.查看master的ip地址4.添加第一个slave节点5.添加第二个slave节点6.登陆master查看信息7.测试主从同步二、搭建哨兵1.在每个容器中安装vim,psutils2.在每个容器中创建哨兵文件3.查看哨兵信息4.演示故障转移一、搭建redis一主
- 定时关机技巧:为你的工作与休息制定计划
保持系统长时间运行可能增加遭受网络攻击的风险。定期重启或关闭计算机可以减少这种风险,并有助于维护系统的安全性和稳定性。它无需安装,打开即可直接使用。如果需要设置关机时间,操作非常简便。比如,你晚上想早些休息,只需设定一个关机时间。「自动关机小程序.zip」:https://pan.quark.cn/s/05418068629f除了定时关机,它还能设置多个闹钟提醒。你可以根据不同需求,设置喝水、休息
- 脑机与AI:开启未来科技的双重引擎
计算机学长
人工智能人工智能脑机接口
脑机接口编程:现状与突破脑机接口编程,作为一门新兴的交叉学科领域,旨在建立大脑与计算机或其他外部设备之间的直接通信通道,通过对大脑信号的采集、处理和解读,实现大脑对外部设备的精准控制,以及外部设备对大脑的反馈刺激。这一技术的实现,依赖于多学科的深度融合,包括神经科学、电子工程、计算机科学等,其核心在于利用先进的算法和技术手段,将大脑的生物电信号转化为计算机能够识别和处理的数字信号。在当前的脑机接口
- BigQuery对象引用(ObjectRef)全面指南:一站式整合结构化与非结构化多模态数据分析
引言企业需要同时管理有组织表格中的结构化数据,以及日益增长的非结构化数据(如图片、音频和文档)。传统上,联合分析这些多样化数据类型非常复杂,通常需要使用不同的工具。非结构化媒体通常需要导出到专门的服务进行处理(如图片分析需计算机视觉服务,音频需语音转文本引擎),这会造成数据孤岛,阻碍全局分析视角的建立。以虚构的电商支持系统为例:结构化的工单信息存储在BigQuery表中,而相关的支持通话录音或损坏
- 什么是EDA电子设计自动化
元圆源
自动化运维
EDA概念电子设计自动化(EDA,ElectronicDesignAutomation),指利用计算机辅助设计(CAD,ComputerAidedDesign)进行超大规模集成电路(VLSI,VeryLargeScaleIntegration)芯片的功能设计、综合、验证、屋里设计等流程。产业链CreatedwithRaphaël2.3.0上游:半导体IP供应商、晶圆厂PDK中游:EDA工具提供商下
- 【网络】Linux 内核优化实战 - net.ipv4.tcp_syncookies
锅锅来了
Linux性能优化原理和实战网络tcp/iplinux
目录功能作用取值及含义查看与修改方法net.ipv4.tcp_syncookies是Linux系统中的一个内核参数,用于控制是否启用SYNCookies功能,该功能主要用于防范SYNFlood攻击。以下是关于它的详细介绍:功能作用SYNFlood攻击是一种常见的DDoS攻击方式,攻击者会短时间内伪造大量不同IP地址的SYN报文发送给服务端,导致服务端的半连接队列被占满,从而无法为正常用户提供服务。
- Netdiscover工作原理和架构
hao_wujing
网络
大家读完觉得有帮助记得关注和点赞!!!Netdiscover是一款基于ARP(地址解析协议)的网络发现工具,主要用于二层(数据链路层)的主机探测,适用于无线网络、交换网络等环境。它支持主动扫描(发送ARP请求)和被动监听(嗅探ARP流量)两种模式,能够快速发现局域网内的活跃主机及其MAC地址和IP地址。一、Netdiscover的工作原理Netdiscover的核心工作原理依赖于ARP协议,具体流
- 【Linux | 网络】网络编程套接字
是阿建吖!
【Linux】【网络】linux网络
目录一、预备知识1.1理解IP地址1.2认识端口号1.3理解网络套接字1.4理解"端口号"和"进程ID"1.5认识TCP协议与UDP协议1.6网络字节序二、socket编程接口2.1socket常见API2.1.1socket函数2.1.2bind函数2.1.3listen函数2.1.4accept函数2.1.5connect函数2.2主机字节序和网络字节序的转换的函数2.2.1htonl函数2.
- 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独立出来,数据持