- 如何利用OpenCV和yolo实现人脸检测
音视频牛哥
大牛直播SDKopencv人工智能计算机视觉yolo11人脸检测opencv人脸检测yolo人脸检测
在之前的blog里面,我们有介绍OpenCV和yolo的区别,本文就人脸检测为例,分别介绍下OpenCV和yolo的实现方式。OpenCV实现人脸检测一、安装OpenCV首先确保你已经安装了OpenCV库。可以通过以下方式安装:使用包管理工具安装:在Python环境中,可以使用pip安装:pipinstallopencv-python。二、加载预训练的人脸检测模型OpenCV提供了基于Haar特征
- CVE-2024-3094 XZ 后门:您需要了解的一切
红云谈安全
网络安全linux网络
3月29日,据报道,在XZUtils中检测到了允许未经授权的远程SSH访问的恶意代码,XZUtils是主要Linux发行版中广泛使用的软件包(最初托管于此的GitHub项目现已暂停)。幸运的是,OSS社区很快发现了该恶意代码,并且仅感染了该软件包的两个最新版本,即上个月发布的5.6.0和5.6.1。大多数Linux发行版的稳定版本均未受到影响。受影响的XZUtils版本附带的复杂恶意负载与Open
- 50.AppendAllText C#例子
军训猫猫头
c#wpf
在C#中,AppendAllText是System.IO.File类的一个静态方法,用于向指定的文件追加文本内容。如果指定的文件不存在,AppendAllText方法会自动创建该文件;如果文件已存在,则会在文件末尾追加指定的文本内容。以下是AppendAllText方法的语法:publicstaticvoidAppendAllText(stringpath,stringcontents);publ
- C#上位机通过CAN总线发送bin文件
电工小王(全国可飞)
WinForm学习c#服务器开发语言
让gpt生成一段代码用来把bin文件通过can总线发出去c#代码还是比较强大的,各种功能基本都是一两行代码就实现了,这里记录一下对这个代码的理解和解读主要代码如下,传入bin文件的地址即可将其从指定的can通道发送出去:publicvoidSendBINFile(stringbinFilePath){if(!File.Exists(binFilePath)){Console.WriteLine("
- C# Linq查询 XML Object
Daniel799
C#
DemousingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Xml.Linq;namespaceLinqDemo{classProgram{staticvoidMain(string[]args){varInputA
- Android 跨进程+解耦的数据持久化方案
一叶飘舟
Android开发数据库android
如果提到跨进程你肯定会想到AIDL,没错我们确实是频繁使用到AIDL去bind服来完成跨进程通信。但是AIDL有个弊端是如果是跨两个应用之间我们需要互相知道对方的AIDL文件,这样我们在bind成功后才能知道Binder是什么类型有哪些接口:bindService(intent,newServiceConnection(){@OverridepublicvoidonServiceConnected
- 20道简单算法题
潜水的码不二
算法算法java蓝桥杯
整理了网上常见的20中简单算法。1.斐波那契数列publicvoidtest_Fibonacci(){intmonth=15;//15个月longf1=1L,f2=1L;longf;for(inti=3;ik&&n%k==0){System.out.print(k+"*");n=n/k;f(n);break;}elseif(n>k&&n%k!=0){k++;f(n);break;}}}难度:⭐⭐⭐
- opencv-python安装失败的解决方法之一
格格衫穿七天
opencvpython人工智能
问题描述:1.pip下载opencv-python无论使用哪个镜像网站都找不到3.4.1.15版本;2.xxx.whl文件下载后用pipinstall“路径”导入失败;3.pip下载以及直接下载xxx.whl都十分慢;解决方法:不要改安装的位置!此时我们需要安装opencv-contrib-python(version为3.4.1.15,和opencv-python保持一致)注意安装时所在的位置,
- android AccessibilityService合法合规采集大众点评app商店商品详情(2024-09-02)
byc6352
androidjava前端数据采集点评app
免责任声明:任何可操作性的内容与本人无关,文章内容仅供参考学习,如有侵权损害贵公司利益,请联系作者,会立刻马上进行删除。一、原理介绍1、打开大众点评app商店publicvoidopen_shop(Contextcontext,Stringshop_id){Stringurl="dianping://gcshopshell?shopuuid="+shop_id;scroll_count=0;Uri
- SpringBoot一键提取身份证与营业执照信息
一名技术极客
#java相关工具类springboot后端java
SpringBoot一键提取身份证与营业执照信息使用的工具和库步骤和代码示例添加依赖图像预处理和文字识别信息提取使用OpenCV对图像进行预处理OpenCV图像预处理示例集成到OCR服务中在SpringBoot中实现图片中的身份证号、营业执照等信息的识别,可以分为以下几个步骤:图像预处理:为了提高识别的准确性,首先对图片进行预处理,如调整大小、对比度、亮度等。文字检测:使用图像处理算法或框架来定位
- 开源人工智能模型框架:探索与实践
CodeJourney.
人工智能能源
摘要本文深入探讨了开源人工智能模型框架,旨在为研究人员、开发者及相关从业者提供全面的理解与参考。通过对多个主流开源框架,如TensorFlow、PyTorch、Keras、Detectron2、OpenCV、HuggingFaceTransformers、AllenNLP、MindSpore和Fastai的详细分析,阐述其特点、应用场景、优势与不足,并结合具体示例说明其使用方法,同时配以相关架构图
- C# 中的 Base 关键字
山语山
c#开发语言
在C#面向对象编程中,base关键字是一个非常重要的概念,它用于在派生类中访问基类的成员。本文将详细探讨base的理解与用法,帮助你更好地掌握这一关键特性。一、base的基本概念1.1基类与派生类在C#中,类之间的关系可以通过继承来表示。一个类可以继承另一个类,从而获得基类的属性和方法。基类是被继承的类,而派生类是从基类派生出来的类。例如:publicclassAnimal{publicvoidE
- SM2-RSA两种加密方式
经典1992
servletjavajvm
RSA加密方式:publicstaticvoidmain(String[]args){StringappKey="";StringappSecret="";StringsignTimespan=String.valueOf(System.currentTimeMillis());Stringtext=appKey+appSecret+signTimespan;KeyPairpair=SecureU
- Java中的并发工具类:让多线程编程更轻松
莫非技术栈
javajava开发语言
Java中的并发工具类:让多线程编程更轻松1.引言:多线程编程的“痛”多线程编程是Java开发中的一大难点,尤其是在高并发场景下,稍有不慎就会遇到线程安全问题、死锁、性能瓶颈等问题。比如:publicclassCounter{privateintcount=0;publicvoidincrement(){count++;//非线程安全!}publicintgetCount(){returncoun
- springboot 利用html模版导出word
经典1992
springboothtmlword
1.maven配置 org.freemarker freemarker 2.3.32 2.控制层业务代码@GetMapping("/exportConstructionLogDocx")@ApiOperation(value="Ai施工日志导出docx")publicvoidexportConstructionLogDocx(
- 转载一片Mac电脑iterm2配置rz、sz命令超级实用
抹了岁月的杀猪刀
bashlinux
rz、sz是什么意思?rz即recv-zmodem,receivezmodem接收协议(对服务器),对本机表现为上传。sz即send-zmodem,sendzmodem发送协议(对服务器),对本机表现为下载。zmodem是一种传输协议(属于SecureCRT),该协议只能可靠地传输大小不超过4GB的文件核心文件iterm2-recv-zmodem.sh#!/bin/bash#Author:Matt
- mac配置 iTerm2 使用lrzsz与服务器传输文件
YAIMZA
Linuxmacos服务器lrzsz
mac配置1.安装支持rz和sz命令的lrzszbrewinstalllrzsz2.下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh两个脚本#克隆仓库gitclonehttps://github.com/aikuyun/iterm2-zmodem~/iterm2-zmodem#进入到仓库目录cd~/iterm2-zmodem#设置脚本文件可执行权限chmo
- Java基础面试:可变长参数
程序员java面试
Java中的可变长参数什么是可变参可变参数是在Java5.0中引入的一个特性,是一种语法糖,它允许方法可以接受不定数量的参数,而无需显式地处理数组。在编译时,方法声明中的可变参数会被转换为数组参数,方法调用中的参数会被打包成一个数组。可变参的语法可变参数的语法非常简单,只需要在参数类型后面加上三个点...即可。例如:publicvoidprintNumbers(int...numbers){for
- Python基于YOLOv8和OpenCV实现车道线和车辆检测
old_power
计算机视觉YOLOopencv计算机视觉python
使用YOLOv8(YouOnlyLookOnce)和OpenCV实现车道线和车辆检测,目标是创建一个可以检测道路上的车道并识别车辆的系统,并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。1、系统主要功能车道检测:使用边缘检测和霍夫线变换检测道路车道。汽车检测:使用YOLOv8模型识别汽车并在汽车周围绘制边界框。距离估计:使用边界框大小计算检测到的汽车与摄像头的距离。2、环境
- OpenCV相机标定与3D重建(59)用于立体相机标定的函数stereoCalibrate()的使用
jndingxin
OpenCV3dopencv
操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述标定立体相机设置。此函数找到两个相机各自的内参以及两个相机之间的外参。cv::stereoCalibrate是OpenCV中用于立体相机标定的函数。它通过一组已知的3D点及其在两个相机中的对应2D投影,来估计两个相机之间的相对位置和方向(旋转矩阵R和平移向量T),
- SQLite3 使用Python快速操作单体文件的sqlite数据库
XLY23333
SQLPython数据库sqlitepython
PY-SQLite3Note:XLY23333RAWVideo:checkPythonVersion:3.11SQL基础操作可参考文章:[CSDN]SQLBasicVERSION1[CSDN]SQLBasicVERSION2DataBase基础概念关系型数据库常见操作即SQL(StructuredQueryLanguage)语法创建/删除/修改表CREATE/DROP/ALTERTABLE新增/删
- 2025年首个满分漏洞,PoC已公布,可部署后门
FreeBuf-
资讯php开发语言
云攻击者正在大肆利用名为Max-CriticalAviatrixRCE漏洞(编号CVE-2024-50603),此漏洞在CVSS评分中高达10分(满分10分),能够在受影响系统上执行未经身份验证的远程代码,网络犯罪分子借此漏洞植入恶意软件。最坏的情况下,该漏洞会让未经身份验证的远程攻击者在受影响系统上运行任意命令,进而完全掌控该系统。目前,攻击者利用此漏洞在易受攻击的目标上部署XMRig加密货币挖
- OpenCV相机标定与3D重建(54)解决透视 n 点问题(Perspective-n-Point, PnP)函数solvePnP()的使用
jndingxin
OpenCVopencv3d
操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述根据3D-2D点对应关系找到物体的姿态。cv::solvePnP是OpenCV库中的一个函数,用于解决透视n点问题(Perspective-n-Point,PnP),即通过已知的3D点及其对应的2D图像点来估计物体的姿态(旋转和平移)。这个函数可以处理任意数量的点
- java项目启动时,执行某方法
ShyTan
java开发语言
1.J2EE项目在Servlet类中重写init()方法,这个方法会在Servlet实例化时调用,即项目启动时调用。importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;publicclassMyServletextendsHttpServlet{@Overridepublicvoidinit()thro
- ATF:givc3的中断初始化配置流程
TrustZone_
#ARM中断ATFarm开发GICATF
前言前段时间不是在整gicv2吗?这个确实太老了。资料很少,但是gicv3的蛮多的,这里找到了一篇关于gicv3的中断的blog,我们一起来学习一下,相信通过前辈的文章一定有所收获,核心内存的内容链接我放在了文末。ATF在bl31中提供了GICv3驱动加载、bl31的中断处理、异常等级切换时中断路由信息配置以及GICv3相关的电源管理功能,由于电源管理功能与中断处理流程关联不大,在本文中不做详细分
- 【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】
主公讲 ARM
#ARM64SystemException安全armlinux
请阅读【嵌入式开发学习必备专栏Cache|MMU|AMBABUS|CoreSight|Trace32|CoreLink|GCC|CSH|Armv8/v9系统异常分析】文章目录1.1GIC(generalinterruptcontroller)介绍1.1.1GIC-V21.1.2GIC-V31.1.3GICv3中断分类1.1.4GICv3组成1.1.4.1Distributor详述1.1.4.2Re
- RTDETR融合[WACV 2024]的MetaSeg中的gmb模块
今天炼丹了吗
RT-DETR涨点改进专栏RT-DETR
RT-DETR使用教程:RT-DETR使用教程RT-DETR改进汇总贴:RT-DETR更新汇总贴《MetaSeg:MetaFormer-basedGlobalContexts-awareNetworkforEfficientSemanticSegmentation》一、模块介绍论文链接:https://arxiv.org/abs/2408.07576代码链接:https://github.com/
- Redis动态热点数据缓存策略设计
冰糖心158
redis缓存redisspring
Redis动态热点数据缓存策略设计1.热点数据识别机制1.1计数器方式@ServicepublicclassHotDataCounter{@AutowiredprivateRedisTemplateredisTemplate;//访问计数publicvoidincrementCounter(Stringkey){StringcountKey="counter:"+key;redisTemplate
- MyBatis-增删改查操作&一些细节
!!!525
mybatisjava数据库mybatisspringboot
目录删除新增修改查询小结:删除功能需求:根据ID删除用户信息SQL:deletefromuserwhereid=5;Mapper接口方法(注意这里不是实现类):/***根据id删除*/@Delete("deletefromuserwhereid=#{id}")publicvoiddeleteById(Integerid);编写单元测试方法进行测试@TestpublicvoidtestDeleteB
- 荣耀CEO赵明:端侧AI使能硬件普惠大众是责无旁贷的使命
ggtdfgfdg
人工智能
荣耀100图片6月26日,在上海世界移动通信大会(以下简称“MWC上海”)上,荣耀终端有限公司CEO赵明发表《AI共生时代,智能终端终将以人为中心赋能》主题演讲,首次向外界展示了两大突破性端侧AI创新:AI离焦护眼技术和AI换脸检测技术,对智能终端厂商如何用AI赋能个人给出最新思路。同时,赵明宣布荣耀MagicV3是集强大和轻薄于一身的里程碑意义产品,将再次挑战折叠轻薄新高度。“通过端侧AI使能硬
- 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独立出来,数据持