- Promise使用
努力的搬砖人.
vue.js前端es6
Promise是JavaScript中用于处理异步操作的一种对象,它代表了一个异步操作的最终完成(或失败)及其结果值。Promise有三种状态:1.pending(进行中):初始状态,既不是成功也不是失败。2.fulfilled(已成功):操作成功完成。3.rejected(已失败):操作失败。基本使用Promise通常用于处理异步操作,比如网络请求、文件读取等。以下是Promise的基本使用方法
- 前端国际化-插件模式
神奇大叔
通用功能前端
文章目录Webpack插件开发解析中文调用有道翻译API生成JSON语言文件React国际化实现Webpack插件开发创建i18n-webpack-plugin.js插件:在src目录下扫描所有文件使用babel-parser解析JavaScript/JSX代码识别中文文本通过有道翻译API翻译生成locales/en.json(英语)和locales/zh.json(中文)constfs=req
- 自己编写代码,实现网络元素的操作的保存yaml 便于重复播放
PyAIGCMaster
我的学习笔记数据库python
你可以通过结合Selenium和自定义JavaScript监听事件来实现交互式元素捕获,并将操作保存到YAML文件。以下是分步实现方案:---###**1.技术栈选择**-**Selenium**:用于操控浏览器-**PyYAML**:用于读写YAML文件-**JavaScript注入**:实现网页内的右键菜单和元素捕获---###**2.实现步骤**####**2.1注入JavaScript监听
- 将网页操作的脚本自动保存成yaml ,然后修改使用
PyAIGCMaster
我的学习笔记python自动化
可以使用Playwright更优雅地实现你的需求,它相比Selenium具有更现代化的API和更好的浏览器控制能力。以下是基于Playwright的改进方案:---###**1.Playwright核心优势**-**内置自动等待**:无需手动处理元素加载等待-**多浏览器支持**:Chromium/Firefox/WebKit统一API-**强大的录制功能**:自带`codegen`模式可生成操作
- 【前端】【Electron】Electron 知识点详解,看着一篇文章就够了
患得患失949
面试考题专栏(前后端)Electron前端electronjavascript
Electron知识点详解第一章:Electron入门与核心概念什么是Electron?定义:一个使用Web技术(HTML,CSS,JavaScript)构建跨平台桌面应用程序的开源框架。核心组成:Chromium(用于渲染界面)+Node.js(用于访问操作系统和后端能力)+自定义APIs。目标:让Web开发者能够轻松创建功能丰富的桌面应用。为什么选择Electron?跨平台:一套代码库,可构建
- 【前端】【React】第四章:深入理解 React Router 及前端路由管理
患得患失949
React从零学习前端react.js前端框架
十一、ReactRouter及前端路由管理React是一个单页面应用(SPA)框架,通常使用ReactRouter进行路由管理。ReactRouter提供客户端路由,避免页面刷新,提高用户体验。(一)ReactRouter基本概念ReactRouter采用基于组件的路由,核心概念包括:术语作用BrowserRouter使应用支持HTML5HistoryAPI的路由Routes用于包裹所有Route
- wfs.js之h264转码mp4分析
KL's pig/猪头/爱心/猪头
javascriptwebsocket网络前端linux
准备源文件下载源文件gitclonehttps://github.com/ChihChengYang/wfs.js.git编译后得到wfs.js这个文件调用在demo/index.html中,前端对wfs.js进行了调用varvideo1=document.getElementById("video1"),wfs=newWfs();wfs.attachMedia(video1,'ch1');对应w
- JDK配置
lgaof65822@gmail.com
JDK配置(Windows)**1、下载并安装oraclejdk(http://www.oracle.com/technetwork/java/javase/overview/index.html),安装路径不要出现空格2、添加环境变量2.1、JAVA_HOME:安装目录2.2、PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;2.3、CLASSPATH:.;%JA
- 10-ArcGIS For JavaScript -- 三维场景导出为图片(PNG/JPEG)
如影随从
ArcGISForJavaScriptarcgisjavascript开发语言PNGJPEG
文章目录前言一、takeScreenshot参数二、示例1、以当前视图相同的分辨率进行截图2、从当前视图创建一个方形缩略图3、取一个高分辨率的方形截图3、在视图中心截取一个小区域的屏幕截图三、完成代码四、结果图前言三维场景开发过程中,时常会出现需要保存当前场景的内容,去做一些分析或者场景展示。如果使用计算机自带的截图功能,只能将当前的页面截取到计算机本地,不能直接提供给程序去使用。ArcGISFo
- 解决方案:网页编辑器处理Word图片粘贴问题
2501_90699800
编辑器wordumeditor粘贴wordueditor粘贴wordueditor复制wordueditor上传word图片ueditor导入word
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
- 09-ArcGIS For JavaScript -- 基于ThreeJS实现动态GLTF模型加载
如影随从
ArcGISForJavaScriptarcgisjavascript开发语言Three.js
文章目录前言一、ArcGIS如何加载GLTF1.JavaScript代码2.结果二、ThreeJS使用三、ArcGIS场景基于ThreeJS加载GLTF1.编写RenderNode引入代码2.调用RenderNode3、结果四、总结前言通常我们在Web端三维场景中看到的动态模型一般都为GLTF或者GLB模型(GLB是GLTF的二级制心态)。而GLTF模型有分为带骨骼动画和不带骨骼动画两种形态。而上
- JS数组复制方法及注意事项
BillKu
javascript开发语言ecmascript
在JavaScript中,直接赋值数组会导致引用传递(修改一个会影响另一个),因此需要创建数组的副本。以下是几种常见的浅拷贝方法:1.使用slice()方法javascriptconstoriginalArray=[1,2,3];constcopiedArray=originalArray.slice();2.使用concat()方法javascriptconstoriginalArray=[1,
- python语言tdcq剧集下载爬虫程序代码
EYYLTV
python爬虫开发语言
importrequestsimportreimportosfromlxmlimportetreeurl=“https://xunaizhan.com/xgplay/tiandichuanqi-1-1/”h={‘user-agent’:‘Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/131
- Python 爬虫详解与操作示例
kdayjj966
python爬虫开发语言
Python爬虫是一项非常实用的技术,可以帮助我们自动化获取网页中的数据。以下内容将从理论到实践,逐步展示如何构建一个完整的Python爬虫,并结合实际操作过程说明。1.爬虫的基本概念1.1什么是爬虫?爬虫(WebCrawler)是一种能够自动访问网页并提取数据的程序。简单来说,爬虫的核心工作是:模拟用户访问网页。获取网页内容(例如HTML)。从内容中提取目标数据。1.2爬虫的工作流程确定目标:明
- 实现word图片在wangEditor中的直接显示与编辑?
weixin_52041354
umeditor粘贴wordueditor粘贴wordueditor复制wordueditor上传word图片ueditor导入wordueditor导入pdfueditor导入ppt
要求:开源,免费,技术支持编辑器:wangEditor前端:vue2,vue3,vue-cli,html5后端:java,jsp,springboot,asp.net,php,asp,.netcore,.netmvc,.netform群体:学生,个人用户,外包,自由职业者,中小型网站,博客,场景:数字门户,数字中台,站群,内网,外网,信创国产化环境,web截屏行业:医疗,教育,建筑,政府,党政,国
- MySQL复制表结构和表数据
一个public的class
sql数据库mysql
转:https://www.cnblogs.com/chLxq/p/11429561.htmlMySQL复制表结构表数据1、复制表结构及数据到新表CREATETABLE新表SELECT*FROM旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用deletefromnewtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primarykey、Extra(au
- 红宝书第二十二讲:详解JavaScript类型化数组与二进制数据处理
前端javascript
红宝书第二十二讲:详解JavaScript类型化数组与二进制数据处理资料取自《JavaScript高级程序设计(第5版)》。查看总目录:红宝书学习大纲一、为什么需要类型化数组?普通JavaScript数组(Array)灵活但低效,不适合处理大量二进制数据(如文件、图像)。类型化数组(TypedArrays)直接操作内存,解决以下痛点:精准控制内存:每个元素类型和大小固定,避免无谓消耗12高效操作二
- 从0搭建React开发环境
2401_84152232
程序员react.js前端前端框架
{//…“scripts”:{“build”:“webpack--mode=development--configscript/webpack.config.js”},}然后根目录终端输入:npmrunbuild在浏览器中打开dist目录下的index.html,如果一切正常,你应该能看到以下文本:'React'index.html目前放在dist目录下,但它是手动创建的,下面会教你如何生成ind
- nginx:关于刷新404问题
dingcho
运维前端nginx运维
location/{root/www/wwww.kingbal.com;if(!-e$request_filename){rewrite^(.*)$/index.html?s=$1last;break;}}
- WebSocket调试神器对决:Apipost凭何碾压Apifox?
你以为所有API工具都能玩转WebSocket?当你的APP需要实时股票行情推送,当你的游戏要处理千人同屏交互,当你的IM系统必须保障消息零延迟——传统HTTP协议的"一问一答"模式瞬间破功。此刻WebSocket协议才是真正的救世主,这个全双工通信协议能让客户端与服务器建立"永不挂断的热线",但掌握这把利器的开发者们,却常常在调试环节摔得鼻青脸肿:▎传统调试:手写JavaScript+浏览器Co
- Kotlin基础知识
Nimrod__
kotlin开发语言android
目录概述:基本语法1、实体声明2、条件判断when:3、循环4、数组和集合数组:概述:Kotlin是一个用于现代多平台应用的静态编程语言。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。此外,Kotlin还可以编译成二进制代码在直接运行在机器上,如嵌入式设备或iOS。基本语法首先,在Kotlin当中不用写";",确实是非常爽的一件事情,代码分段
- node版本安装与切换
墨空文377
node.js
gnvm官网地址:http://ksria.com/gnvm/doc/zh/common/download.html1.使用gnvm进行node下载切换a.gnvm下载地址:https://pan.baidu.com/s/1gdmVgen#list/path=%2F%E6%88%91%E7%9A%84%E5%85%B1%E4%BA%AB%2Fgnvm%2F64-bit%2F0.2.0将下载的gnv
- js手动触发事件dispatchEvent()
神影天初
JavaScriptjavascriptevent
创建并触发事件有两种方法可以实现手动触发事件,一种是如下所示的过时的繁琐的方式创建事件对象并触发事件:create--init--dispatch,还有一种(不兼容IE,但是建议使用)参考另一篇JavaScript原生实现事件监听及手动触发。下面的方法将要从规范移除,除非真的需要,否则建议不要再使用了。1.createEvent(eventType)参数:eventType包含许多种类型:Even
- JavaScript原生实现事件监听及手动触发
神影天初
JavaScriptjavascriptevent
事件监听标签中的onxxx,比如按钮js中的onxxx,比如document.body.onclick=function(){/*bodyclick*/}js中的addEventListener,比如document.body.addEventListener("click",()=>{/*bodyclick*/})这三种中最好的就是最后一种了,不仅便于管理,而且可以给一个元素的任意一个事件添加多
- 用MVC做一个bootstrap-table的实例
qq_23982569
MVCMVCknockout-min.jsbootstrap
前台HTML:注意需要引用js和cssBootStrapTable使用@*1、Jquery组件引用*@@*2、bootstrap组件引用*@@*3、bootstraptable组件以及中文包的引用*@@*4、页面Js文件的引用*@@*查询条件*@查询条件学号用户名查询*@@*工具栏和table*@新增@*修改删除@*添加用户dialog*@<inputt
- JavaScript中的装饰器模式
前端岳大宝
前端核心知识总结前端javascript装饰器模式
以下是关于装饰器模式(DecoratorPattern)的系统梳理,涵盖核心概念、实现方式、应用场景及注意事项,帮助我们掌握这种灵活扩展对象能力的经典设计模式:一、装饰器模式基础1.核心概念定义:动态地为对象添加额外职责,相比继承更灵活,遵循开放-封闭原则(对扩展开放,对修改封闭)。核心思想:通过包装对象(装饰器)增强功能,而非修改原始对象。参与者:Component(组件接口):定义被装饰对象的
- v8引擎垃圾回收
bug丸
浏览器前端javascript垃圾回收
V8引擎垃圾回收机制v8引擎负责JavaScript的执行。V8引擎具有内置的垃圾回收机制,用于自动管理内存分配和释放堆与栈栈空间栈空间是小而连续的内存空间,主要用于存储局部变量和函数调用的相关信息,同时栈结构是“先进后出”的策略栈空间的最大的特点是空间连续,所以在栈中每个元素的地址都是固定的,因此栈空间的查找效率非常高,但是通常在内存中,很难分配到一块很大的连续空间,因此,V8对栈空间的大小做了
- 在 Vue 中监听常用按键事件(回车,ESC 键,空格等)
介si啥呀~
jsvue.js前端javascript
一、Vue原生按键修饰符(推荐)html@keydown.esc="cancel"@keyup.space="togglePlay"@keydown.delete="clear"@keydown.tab="nextField"@keyup.up="navigate(-1)"@keyup.down="navigate(1)"@keyup.left="moveLeft"@keyup.right="mo
- pywebview中文文档
穿透云
python
pywebview是一个轻量级的BSD许可证下的跨平台webview组件。它允许在自身原生GUI窗口中显示HTML内容。它让您可以在桌面应用程序中使用WEB技术,同时隐藏GUI依赖浏览器的事实。pywebview集成了内置HTTP服务器、Python中的DOM支持以及窗口管理功能。pywebview中文文档安装pipinstallpywebview根据您所使用的平台,可能需要安装其他库。请参阅安装
- 【An】Animate 2024 动画设计制作
Alger_Hamlet
动画
【An】Animate2024动画设计制作文章目录【An】Animate2024动画设计制作一、介绍二、效果三、下载一、介绍AdobeAnimate2024是一款动画设计制作软件。集成了诸多绘图工具、高级动画特效和灵活的交互设计功能,让用户能够轻松绘制出精美的角色与场景,并通过精细的时间轴控制实现流畅的动画效果。无论是二维动画、HTML5广告、互动网页、游戏元素还是教育课件,Animate2024
- 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独立出来,数据持