- STM32 USB通信知识与应用详解
番茄老夫子
stm32嵌入式硬件单片机
在嵌入式系统开发中,STM32作为一款性能卓越的微控制器,其USB通信功能的应用十分广泛。本文将深入探讨STM32USB的相关知识,从基础概念到实际应用,为读者呈现一个全面的STM32USB通信知识体系。一、USB基础知识USB(UniversalSerialBus,通用串行总线)是一种用于计算机与外部设备连接的接口技术。它以其高速、可靠、灵活的数据传输方式,成为现代计算机系统中不可或缺的组成部分
- 攻防世界Web_php_unserialize(writeup)
金昔往矣
php网络安全
题目题目:Web_php_unserialize题号:NO.GFSJ0710解题思路:浅看代码,这题需要我们以GET的方式提交一个变量var去利用php反序列化漏洞攻击,但题目设置了对序列化对象字符串的过滤以及对非index.php文件的重定向,我们需要突破这两点。对于序列化对象的过滤其会过滤大小写的o:4,可以使用o:+4来绕过,而对于__wakeup函数而言,它会在对象进行反序列化时被调用,但
- JVM垃圾收集器合集
18你磊哥
jvmjava进阶jvm
前言:JVMGC收集器的回顾与比较JVM(Java虚拟机)中的垃圾收集器是自动管理内存的重要机制,旨在回收不再使用的对象所占用的内存空间。以下是JVM中几种常见的垃圾收集器的详细介绍:一、新生代垃圾收集器1.Serial收集器类型:单线程收集器,新生代。特点:在垃圾收集时,会暂停所有其他工作线程(Stop-The-World),简单高效,发展历史最悠久。适用场景:适用于单核处理器环境和Client
- 配置NBMA和P2MP网络类型
23zhgjx-hyh
网络
system-view[Huawei]undoinfo-centerenable[Huawei]sysnameAR1[AR1]interfaces1/0/0[AR1-Serial1/0/0]link-protocolfr[AR1-Serial1/0/0]frmapip10.1.1.2102broadcast[AR1-Serial1/0/0]frmapip10.1.1.3103broadcast[A
- mybatis plus
架构师成长进阶空间
Javajava
//根据ID查询TselectById(Serializableid);//根据entity条件,查询一条记录TselectOne(@Param(Constants.WRAPPER)WrapperqueryWrapper);//查询(根据ID批量查询)ListselectBatchIds(@Param(Constants.COLLECTION)CollectionidList);//根据entit
- 什么是序列化(Serialization)?——从通用定义到具体场景的完整解析
小伍的Code
javaredis开发语言面试
什么是序列化(Serialization)?——从通用定义到具体场景的完整解析序列化(Serialization)是计算机科学中的一个核心概念,它的本质是将数据结构或对象状态转换为一种可存储或可传输的格式,以便后续能够完整恢复原始数据。以下是分层次的详细解释:一、通用定义:序列化的核心目的1.本质将复杂的数据结构(如对象、数组、字典等)转换为一种线性格式(如字节流、字符串、二进制数据),使其可以:
- c#读取json某一节点数据_C#获取Json字符串中的某个值
鹿哥说
c#读取json某一节点数据
问题描述:json数据格式{"resCode":0,"resMag":"aaa","data":[{"parkName":"B1停车场","freeSpaceNum":100}]}。第一方法:使用JavaScriptSerializerJavaScriptSerializerJss=newJavaScriptSerializer();DictionaryDicText=(Dictionary)Js
- JVM的垃圾回收器都有哪些?
yyueshen
jvm测试工具
在Java虚拟机(JVM)中,不同的垃圾回收器采用不同的算法和策略,以满足不同应用场景的性能需求。以下为你详细介绍常见的JVM垃圾回收器:新生代垃圾回收器1.Serial收集器特点:单线程的垃圾回收器,在进行垃圾回收时,必须暂停其他所有的工作线程(StopTheWorld,简称STW),直到垃圾回收完成。适用场景:适用于客户端模式下的小型应用程序,因为它的实现简单,没有线程交互的开销,在单CPU环
- Unity数据持久化—Json存档
羽阿呆
Unityunityjson游戏引擎
项目需求为:1.实现存档列表,显示存档截图,可以查看之前保存的所有存档2.点击存档直接加载到场景首先,定义两个类,用于声明存档列表和存档所需要的List[System.Serializable]publicclassSaveData{//存储目标物的位置和朝向publicListtargetPosition=newList();publicListtargetRotation=newList();
- 第十五届蓝桥杯省赛电子类嵌入式学习记录(客观题)
@小张要努力
蓝桥杯学习职场和发展嵌入式硬件单片机51单片机
01.SMT32微控制器的SPI可以按照时钟相位和极性配置多少种工作模式(B)。A.2B.4C.8D.16解析:SPI(SerialPeripheralInterface)总线是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换数据。SPI的工作模式由时钟极性(CPOL)和时钟相位(CPHA)来决定。[1]时钟极性(CPOL):决定了SPI时钟信号(SCK)的空闲状态电平。
- Unity中自定义一个EditorWindow窗体并显示诸如list<GameObject>数据
dzj2021
unity游戏引擎
前言:自定义窗体的效果一、显示一个你自定义的窗口原理1、基类:EditorWindow2、组成:(1)定义普通变量。(2)定义系列化的对象和属性。【SerializedObject】、【SerializedProperty】(3)初始化方法和菜单定制//Addmenunamed"MyWindow"totheWindowmenu[MenuItem("Window/MyWindow")]staticv
- jvm的gc过程
18你磊哥
jvm
先回忆一下JVM的内存结构和GC的基本原理。JVM的内存主要分为堆、栈、方法区等,而GC主要发生在堆内存里。堆又分为新生代和老年代,新生代包括Eden区、Survivor区(From和To),老年代则是长期存活的对象所在。首先,用户可能想了解GC是如何工作的,不同的垃圾收集器有什么不同,比如Serial、Parallel、CMS、G1、ZGC等。但可能他们需要的是基础流程,比如标记-清除、复制、标
- Qt 串口类QSerialPort 使用笔记
一对一答疑的编程作家朱文伟
qtqt笔记开发语言
Qt串口类QSerialPort使用笔记虽然现在大多数的家用PC机上已经不提供RS232接口了。但是由于RS232串口操作简单、通讯可靠,在工业领域中仍然有大量的应用。Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便。现在好了,在Qt5.1中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序。本文就简单的讲讲QtSerialPort模块的使用。
- Python通过RS485串口控制码垛机器人
mosquito_lover1
计算机视觉人工智能python机器人
先看代码,再看后面的说明importserialimporttimeclassPalletizingRobot:def__init__(self,port,baudrate=9600,timeout=1):self.port=portself.baudrate=baudrateself.timeout=timeoutself.serial_conn=Nonedefconnect(self):"""
- unity快速进入Project窗口文件夹
legroft
unity
因为项目文件结构日渐复杂,unity的Project窗口操作又不是很人性化,所以我需要一个快速进入Project窗口中文件夹的功能publicclassEditorProjectToolWindow:BaseOdinEditorWindow{[Serializable]publicclassCollect{publicstringname;publicstringpath;}publicstati
- Java实现二叉树
zhangpeng455547940
数据结构与算法设计Javajava开发语言
二叉树实现类importjava.io.*;publicclassBST{privatestaticclassBSTNodeimplementsSerializable{Comparabledata;BSTNodeleft;BSTNoderight;publicBSTNode(){}publicBSTNode(Comparabledata){this.data=data;}publicBSTNod
- CCIX——ordering
Hug Freedom.
硬件工程
1.Multi-copyatomicity包含两个方面,写操作序列化和读操作一致性①写操作serialized所有RN观察到的写操作的顺序必须一致(比如coreA和coreB都对地址X进行写操作,无论AB谁先发起写操作,按照多副本原子性的要求,其它core看到的对A和B的写操作的顺序都是确定的,不会出现有的core认为是A先写,有的core是B先写的情况)②读操作一致性在所有RN都观察到某个写操作
- 服务器硬件配置统计
mixboot
linux服务器运维硬件统计
服务器型号和SN#dmidecode-tsystem|grep-E"ProductName|SerialNumber"|awk-F':''{print$2}'PowerEdgeR75154567CPU型号和物理CPU数量echo"$(lscpu|grep"Modelname"|cut-d':'-f2|sed's/^*//')x$(lscpu|grep"Socket(s)"|cut-d':'-f2|
- JAVA后端面试八股文汇总(2)
使峹行者
java面试后端
二、Java多线程篇1.简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。工作内存中保存被该线程使用的变量的主内存副本,线程对变量的所有操作都必须在工作空间进行,不能直接读写主内存数据。操作完成后,线程的工作内存通过缓存一致性协议将操作完的数据刷回主存。2.简述as-if-serial编译器等会对原始的程序进行指令重
- Open WebUI 集成企业微信认证开发文档
大刘讲IT
企业微信web人工智能
OpenWebUI集成企业微信认证开发文档1.系统架构1.1技术栈前端:Vue3+TypeScript后端:FastAPI数据库:PostgreSQL缓存:Redis认证:企业微信OAuth2.01.2系统模块前端应用认证模块会话管理企业微信OAuth数据持久化PostgreSQL2.数据库设计--用户表CREATETABLEusers(idSERIALPRIMARYKEY,wecom_useri
- 查看电脑信息
︶ㄣ洳影隨形しovё
电脑
搜索关键字:怎么查看windows版本的xxxx怎么查看戴尔/联想电脑的xxx总结:Win+Rcmd硬盘序列号wmicdiskdrivegetserialnumber系统安装日期systeminfo设备序列号wmicbiosgetserialnumberMAC及IPipconfigWin+Rmsinfo32品牌型号/系统安装日期/系统版本控制面板MAC及IP网络和internet系统版本系统与安全
- 物联网乐鑫USB方案,设备互联和数据传输应用
深圳启明云端科技
乐鑫方案物联网智能家居网络
USBUSB是一种通用的总线标准,用于连接主机和外部设备。乐鑫USB方案为用户提供了方便快捷的设备互联和数据传输方式。乐鑫SoC通过将USB作为标配外设之一,提供USB2.0OTG或USB-Serial-JTAG接口,支持主机(Host)和设备(Device)两种模式,为用户提供了丰富的USB主机方案和USB设备方案。不同系列的芯片支持的USB功能如下图USB2.0OTGESP32-S2/S3等芯
- django中序列化器serializer 的高级使用和需要注意的点
小赖同学啊
pythondjangosqlitepython
在DjangoRESTframework(DRF)中,序列化器(Serializer)是一个强大的工具,用于将复杂的数据类型(如Django模型实例)转换为Python原生数据类型,以便将其渲染为JSON、XML等格式,同时也能将接收到的外部数据反序列化为Django模型实例。以下将介绍序列化器的高级使用方法以及需要注意的点。高级使用1.嵌套序列化器当模型之间存在关联关系(如外键、多对多关系)时,
- 【新手向】从零开始学习Java(Day27)Java 序列化
星河天欲瞩
从零开始学习Java学习java开发语言jvmvscode后端
每天二十分钟,成就Java大神,点点关注不迷路!今天是第二十七天,给坚持到这里的小伙伴点个赞!船在大风中走得更快,共勉!目录用法例子注意事项版本控制serialVersionUIDtransient关键字自定义序列化下节预告Java序列化是一种将对象转换为字节流的过程,以便可以将对象保存到磁盘上,将其传输到网络上,或者将其存储在内存中,以后再进行反序列化,将字节流重新转换为对象。序列化是一种用于保
- HashMap源码解读
十五001
基础哈希算法散列表算法
1.HashMap概述HashMap是基于哈希表的Map接口实现,允许空键和空值。它继承自AbstractMap,实现了Map、Cloneable和Serializable接口。2.底层数据结构在JDK1.8中,HashMap的底层数据结构由数组+链表+红黑树构成:数组:存储哈希表的节点(Node)。链表:解决哈希冲突,当多个键的哈希值相同或相近时,它们会被存储在同一个数组槽位的链表中。红黑树:当
- Pytest自动化框架搭建
柯有Q
pytest自动化python运维
背景入职了一家小公司,需要从0开始搭建一个自动化测试环境,因为是测试板卡项目,所以需要使用串口连接工具pyserial,测试用例批量化执行工具pytest,测试报告自动生成工具allure,大家根据这三个关键词选择是否需要继续阅读1.技术实现1.1技术说明使用pyserial作为串口连接工具,发送读写命令;使用pytest作为用例批量管理工具;使用allure对测试结果进行可视化处理,自动生成测试
- 使用嵌入式Linux在ARM平台上使用MIPI CSI接口
WangWEel
linuxarm开发运维嵌入式
使用嵌入式Linux在ARM平台上使用MIPICSI接口MIPICSI(MobileIndustryProcessorInterfaceCameraSerialInterface)是一种广泛应用于移动设备和嵌入式系统中的摄像头接口标准。在ARM平台上,我们可以使用嵌入式Linux操作系统来实现MIPICSI接口的功能。本文将介绍如何在ARM平台上使用嵌入式Linux来配置和操作MIPICSI接口,
- Java-servlet(四)详细讲解Servlet类层次结构与生命周期
珹洺
Javaservletjavaservlet开发语言运维服务器后端
Java-servlet(四)详细讲解Servlet和生命周期前言一、Servlet类层次结构1.Servlet包2.Servlet与ServletConfig与Serializable的关系1.三者分别是什么2.三者之间的关系3.如何让类具有Servlet功能二、Servlet生命周期1.初始化阶段2.服务阶段3.销毁阶段总结前言Servlet是JavaWeb开发的核心组件,负责处理客户端请求并
- 【踩坑日记15】safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooLarge
longii11
开发语言后端
问题描述加载stabilityai/stable-diffusion-xl-base-1.0模型时,出现问题。Errorwhiledeserializingheader:HeaderTooLargeFile"/home/XXX/code/dreambooth_lora/train_dreambooth_lora_sdxl_advanced.py",line1278,inmaintext_encod
- 什么是序列化?什么是反序列化?
重生之我在成电转码
java八股序列化反序列化
什么是序列化(Serialization)和反序列化(Deserialization)?在Java中,序列化(Serialization)和反序列化(Deserialization)是用于对象与字节流之间转换的机制,通常用于在网络传输、文件存储、缓存等场景中。1.什么是序列化(Serialization)?序列化是指将Java对象转换为字节流(bytestream)的过程,以便:存储到磁盘文件或数
- 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独立出来,数据持