- postgresql增量备份系列二 pg_probackup
necessary653
postgresqlpostgresql数据库
已经很久没有发文章了,主要是最近工作上的内容都不适合发文章公开。可能往后文章发表也不这么频繁了,不过大家有问题我们可以交流。之前有写过PG增量备份的其他工具使用方法,pg_probackup也是应用比较多的PG备份工具。一.pg_probackuppg_probackup是一个用于管理PostgreSQL数据库集群备份与恢复的实用工具,截止2.5.15版本,支持PostgreSQL11-16及以上
- PSQL 处理 BLOB 类型数据问题
紫菜(Nori)
工作服务器数据库服务器
处理Blob问题获取BLOB字段内容,发生如下报错org.postgresql.util.PSQLException:大型对象无法被使用在自动确认事物交易模式需要设置为手动提交事务即可解决参考:PostgreSQL:Documentation:7.1:UsingLargeObjects写入流程如下参考:Java写入pgsqlblob类型_mob649e8159b30b的技术博客_51CTO博客By
- 利用视觉-语言模型搭建机器人灵巧操作的支架
三谷秋水
智能体大模型计算机视觉语言模型机器人人工智能计算机视觉机器学习
25年6月来自斯坦福和德国卡尔斯鲁厄理工的论文“ScaffoldingDexterousManipulationwithVision-LanguageModels”。灵巧机械手对于执行复杂的操作任务至关重要,但由于演示收集和高维控制的挑战,其训练仍然困难重重。虽然强化学习(RL)可以通过在模拟中积累经验来缓解数据瓶颈,但它通常依赖于精心设计的、针对特定任务的奖励函数,这阻碍了其可扩展性和泛化能力。
- 16014.rtsp推流服务器
guangshui516
16000-Linux综合篇服务器运维
1ubuntu20.04搭建rtsp服务器,easyplayer进行拉流在images/stream1文件下存储了5张图片,作为咱们得原料,运行rtsp服务器,即可。#include#include#include
- 使用 TraceView 分析 Android 函数耗时
时小雨
性能优化androidkotlin
性能优化是Android开发的核心技能之一,而函数耗时分析是优化的关键起点。本文将全面介绍如何使用TraceView进行函数耗时分析,并结合现代工具提供完整的优化方案。一、TraceView基础:原理与使用场景1.1TraceView工作原理TraceView通过插桩(Instrumentation)方式记录每个函数的执行时间。当启动跟踪时,Android运行时会在每个方法的入口和出口插入计时器,
- pytest框架之setup/teardown
幼儿园扛把子123
pytest测试用例python单元测试
pytest框架之setup/teardown1、简介pytest测试框架支持五个层级的setup和teardown,包含:session会话级、module模块级、function函数级、class类级、method方法级:setup_module/teardown_module:只在模块开始和结束时执行(不在类中)setup_function/teardown_function:只在函数用例开
- pytest 的setup/teardown方法
weixin_44984098
服务器运维
copy于凡晨丹心setup()和teardown()方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/teardown_class)、方法级别(setup_me
- Linux——搭建嵌入式Linux开发环境步骤总结(虚拟机、Ubuntu、JDK、库文件、GCC)
Winter_world
搭建嵌入式Linux开发环境虚拟机Ubuntu安装JDK安装库文件GCC版本更新
目录0前言1主机软件环境2Linux系统下安装编译组件3Linux系统下安装库文件和JDK0前言回顾一直以来做的嵌入式项目方向,从如ST的单片机裸机开发,SOC开发,到STM32裸机开发,基于uCOSII的开发,基于freeRTOS的开发等,在实时操作系统层面的应用开发停留了一段时间了,一直想再突破下自我,去年做了一个基于工控机方案的Linux系统应用开发项目,对于Linux一直没有系统性的学习整
- Java宠物类设计:从基础到空指针预防
Cyanto
Javajava开发语言
宠物类(Pet)设计首先我们来看一个简单的宠物类设计,这个类包含了宠物的基本属性和行为:publicclassPet{//成员变量(属性)Stringname;//宠物名字Stringbirthday;//出生日期chargender;//性别//成员方法(行为)publicvoideating(){System.out.println("开吃!");}publicvoidrunning(){Sy
- 《伴时匣》app开发技术分享--用户登录(3)
鸿蒙小林
鸿蒙harmonyos端云一体化
技术栈Appgalleryconnect开发准备上一节我们实现了用户数据的提交,我们成功的实现了用户的注册,这一节我们就要根据提交的信息进行登陆验证,在登陆之后我们需要保存当前用户的信息,方便我们后续的使用。功能分析要实现登陆,首先我们需要拿到用户输入的内容,检测之后,我们实现用户的登陆,同时把用户登录成功后的数据存储起来,方便我们后续的使用功能开发我们先实现登陆相关的内容importprompt
- 什么是云手机?云手机有哪些用途?
SoraPhone
智能手机
ECalc云手机是一款革命性的基于云计算技术的移动设备解决方案,旨在通过云平台为用户提供远程访问和控制手机操作的能力。这项创新技术为个人和企业用户带来了前所未有的灵活性和效率,下面是ECalc云手机在不同场景下的应用展示:远程工作便捷化:ECalc云手机作为一个高效的远程办公工具,为用户提供了随时随地访问工作文件、电子邮件、应用程序等必需工具的可能性,极大地便利了经常出差或需在多地办公的职场人士。
- 华为HDC 2025:一场开发者的技术盛宴与灵感之旅
前言作为一名开发者,参加华为HDC大会就像是一场朝圣之旅。每年这个时候,全球的开发者们都会汇聚一堂,分享最新的技术成果,探讨未来的趋势,而今年的HDC2025更是让我期待已久。这次大会不仅有华为最新技术的展示,还有各种实战案例和深度分享,对我来说,这是一次难得的学习和交流机会,更是面基各位好友的最佳机会。那么接下来就来分享一下三掌柜参加2025华为HDC大会的所见所感吧。初到会场:满满的科技感当我
- Pytest测试框架(七):pytest 的setup/teardown方法
凡晨丹心
Python+pytest软件测试python
setup()和teardown()方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/teardown_class)、方法级别(setup_method/tear
- 高性能AI核心板Z3588CV1:基于瑞芯微RK3588的旗舰级解决方案——8K视觉处理 · 6TOPS NPU算力 · 多场景边缘计算
九鼎创展科技
嵌入式硬件边缘计算arm开发android
RK3588处理器技术细节计算单元CPU:4×
[email protected](大核集群)4×
[email protected](能效集群)支持ARMDynamIQ混合架构,可实现任务智能调度GPU:Mali-G610MP4,支持OpenGLES3.2/2.0/1.1、Vulkan1.28KVPU视频编解码:H.265/H.264/AV1格式,支持60fps实时处理NPU:6TOPS算力(INT
- SpringMVC实战:从配置到JSON处理全解析
Cyanto
SpringMVCspringjava
目录项目概述核心配置文件解析web.xml配置springmvc.xml配置控制器详解基本控制器示例请求处理方式获取请求参数返回JSON数据请求转发重定向视图解析与页面跳转项目结构说明关键知识点总结项目概述这是一个基于SpringMVC的Web应用示例,展示了如何配置SpringMVC环境、创建控制器以及处理不同类型的请求和响应。项目包含了以下核心功能:基本页面跳转请求参数处理JSON数据返回请求
- 如何搭建基于RK3588的边缘服务器集群?支持12个RK3588云手机
XMAIPC_Robot
ARM+FPGAAI服务器服务器运维
以下是基于RK3588搭建边缘服务器集群的完整实施方案,涵盖硬件选型、集群架构、软件部署及优化要点:️一、硬件集群架构设计节点基础配置核心单元:单节点采用RK3588核心板(4×
[email protected]+4×
[email protected]),集成6TOPSNPU及Mali-G610GPU,支持LPDDR4X内存(4~32GB)及eMMC/SATA/TF卡多级存储611。扩展接口:通过100Pin
- 【无标题】获取独立按键值
五幺大师
51单片机
#include#include"Delay.h"/***@brief获取独立按键键码*@param无*@retval按下按键的键码,范围:0~4,无按键按下时返回值为0*/unsignedcharKey(){unsignedcharKeyNumber=0;if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;}if(P3_0==0)
- 【无标题】51单片机74HC138的应用
五幺大师
嵌入式硬件51单片机
/**************************************************************************************实验现象:下载程序后"动态数码管模块"从左至右显示0-7接线说明:单片机-->动态数码管模块*******************************************************************
- OpenKyLin开源操作系统——银河麒麟
openKylin操作系统是由openKylin社区主导开发的一款根社区桌面操作系统,适用于X86、ARM、RISC-V等主流架构的台式电脑、笔记本电脑、平板和嵌⼊式设备。在内核、基础库、应用软件等方面均采用领先的版本,是麒麟商业版本的技术上游,与商业版本路线一致、协同发展。同时,openKylin社区版还将融合各类创新技术应用,汇聚行业力量,共同推动Linux行业创新发展!版本特性openKyl
- 04《区块链财富指北》账号篇(1):混沌之初,抢注公链短账号的生意经。
肖南飞
区块链财富指北区块链python比特币eosgithub
账号(1):混沌之初,抢注公链短账号的生意经。《区块链财富指北》系列文章由NOCY.COM策划,肖南飞主笔撰写。技术选型基于BOScore公链,旨在以有趣易懂的方式传播普及区块链技术,不构成任何投资建议!0x01混乱不是深渊,混乱是阶梯。行业兴起之初,总会有很多衍生产业。淘金热带富了卖铲子的;互联网红火了域名生意;就连手机、QQ普及也带动了对应靓号生意。区块链世界,每个人、每家企业、每个实体必然要
- 半途而废! 为何?
waterHBO
经验总结心得体会
1.把需求,动机,起因,痛点,喜爱,理想的情况,都下来,写为一篇文章。单独存放。2.因为总是做到一半,感到无聊,自我怀疑,轻易放弃。这个现象,请帮我解释一下原因。第一部分:我们的多页式Excalidraw增强应用V1.0的故事这份文档,不是冰冷的PRD,而是我们这次旅程的“心情日记”和“宣言”。当你未来某天感到迷茫或怀疑时,可以随时打开它,重温我们最初的火花和胜利的喜悦。我们的宣言:解放思想,一次
- 为什么要学习 next.js 框架 + Vercel 部署平台,因为我想把自己的 app 分享给别人。
waterHBO
学习javascript开发语言
前端开发太卷?不如给你的React换个“豪华座驾”和“F1赛道”**如果你像我一样,从create-react-app的时代一路走来,你一定经历过那种“甜蜜的烦恼”:React给了你一个超强的V8引擎,但造车剩下的所有事——从方向盘(路由)、底盘(项目结构)到导航系统(数据管理)——都得你自己撸。结果就是,每个项目开始前,你都在重复发明轮子,在Webpack的配置地狱里苦苦挣扎。好消息是,时代变了
- 状态模式 - Flutter中的状态变身术,让对象随“状态“自由切换行为!
明似水
flutter建造者模式flutterui
订单状态流转/播放器控制/游戏角色行为…一个模式搞定所有状态驱动型逻辑!经典场景:订单状态管理假设你在开发一个外卖App,订单有以下状态:等待接单已接单配送中已完成已取消每个状态下:显示的UI不同可执行的操作不同状态转换规则不同传统实现方式(switch-case地狱):classOrder{Stringstate='waiting';//状态字段WidgetbuildUI(){switch(st
- Clickhouse源码分析-Replicated Database创建流程
前置准备DDL:CREATEDATABASEmy_replicated_dbENGINE=Replicated('/clickhouse/databases/my_replicated_db','{shard}','{replica}');这里需要你提前启动1个clickhouse,1个clickhouse-keeper。源码分析断点:bInterpreters/DDLWorker.cpp:146
- 链式队列的定义与实现
爱吃萝卜的猪
数据结构与算法数据结构算法拓扑学队列链表
1.链式队列链式队列是一种同时带有队头指针和队尾指针的单链表,头指针指向队头结点,尾指针指向队尾结点。如图:2.队列的存储结构类型可以描述为:typedefstructNode{intdata;structNode*next;}LinkNode;typedefstructQueue{LinkNode*rear;//头指针LinkNode*front;//尾指针intcount;//用于记录队列的元
- Mac查看磁盘寿命
博观而约取
macOSmacos
1.场景还原mac使用久了,我想查看磁盘的写入量和寿命,记录一下查看方法。系统环境:macOS14.4.1电脑配置:MacBookPro16英寸M1Pro2.查看步骤安装Homebrew我们要借助Homebrew安装一个叫"smartmontools"的软件,如果你已安装Homebrew请跳过此步骤。打开终端或者iterm输入以下命令,按照提示安装:/bin/bash-c"$(curl-fsSLh
- 临床试验审计问题分类与整改策略
qq_34062333
临床审计
一、数据可靠性问题1.1主要缺陷1.1.1非实时记录培训/QC记录追溯性补签(ALCOA+违反)1.2根本原因1.2.1记录流程不规范缺乏实时记录监督机制1.2.2人员意识不足对ALCOA+原则理解不深1.3整改措施(CA)1.3.1优化记录流程引入电子记录系统,设置自动提醒1.3.2加强培训针对ALCOA+原则开展专项培训1.4预防策略(PA)1.4.1定期审计每季度审查记录流程1.4.2强化监
- C# DataGridView 刷新导致界面卡顿解决办法
金增辉
C#编程c#开发语言
C#DataGridView刷新导致界面卡顿解决办法解决方案:利用反射设置DataGridView的双缓冲publicMainForm1(){//设置窗体的双缓冲this.SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.ResizeRedraw|ControlStyles.AllPaintingInWmPaint,true);t
- GitHub 使用小技巧
千空
搜索技巧信息检索
GitHub现在成了程序员最流行的社交网站,可能也是最大的代码托管仓库。然而除了代码托管外,GitHub还提供其它服务:代码仓库(https://github.com),代码片段(https://gist.github.com),短网址(https://git.io),主页(http://username.github.io),工作(https://jobs.github.com)。这里记录一下G
- YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-autobackend.py
红色的山茶花
YOLO笔记深度学习
autobackend.pyultralytics\nn\autobackend.py目录autobackend.py1.所需的库和模块2.defcheck_class_names(names:Union[List,Dict])->Dict[int,str]:3.defdefault_class_names(data:Optional[Union[str,Path]]=None)->Dict[in
- 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独立出来,数据持