- 大白话聊聊:DevOps
程序员-洋哥
devops运维
有小伙伴后台私信我聊下DevOps,网上文章很多,今天我结合软件开发周期聊一下DevOps的流程。DevOps并不是什么神秘的黑科技,而是一种理念和方法论,通过优化流程、提升自动化水平,让开发和运维团队能够更紧密地合作,共同推动项目的成功。首先,我们要明确DevOps的核心目标:快速、可靠地交付高质量的软件。为了实现这个目标,我们需要关注整个软件开发生命周期中的各个环节,并对其进行优化和整合。一、
- 【Docker】Docker容器无法连接 Docker Hub 下载镜像的详细排查与解决方案
丶2136
#dockerdocker容器运维
引言在使用Docker时,可能会遇到容器无法从DockerHub下载镜像的情况。这种问题可能由多种原因引起,例如网络问题、Docker配置问题或镜像源问题等。本文将详细分析如何排查和解决这些问题,并通过表格、图示和示例代码提供清晰、实用的解决方案,帮助你顺利从DockerHub拉取镜像并运行容器。目录引言一、检查网络连接1.1使用`curl`检查网络连接1.2网络故障排查1.2.1防火墙设置1.2
- DevOps全流程
fengdongnan
devops运维java
DevOps全流程面试速记DevOps是一种融合开与运维的软件研发实践方法,规划从需求调研到开发,测试,部署等全流程,通过Jenkins和Kubernetes等自动化工具集成部署实现从代码编写到部署的无缝衔接,加速软件交付周期。我在实习中涉及到的工作有参与需求评审和开发排期会议,独立开发测试,并通过流水线部署与测试合作完善系统。DevOps是一种软件开发和运维的实践方法,是为了实现更高效、快速、可
- 修改mysql数据库远程访问
LongtengGensSupreme
mysql
本文是docker部署的mysql8.0数据库,如果不是docker二部署的,则省略第一步直接使用下面修改即可1、使用docker容器,进入mysql8.0数据库的docker容器进行修改dockerexec-itmysqldocker/bin/bash2、登录MySQLmysql-uroot-p进入`mysql数据库:usemysql;修改user表中的host字段,将localhost改为%(
- 【DevOps】Jenkins+Kubernetes:K8S集群外部署的Jenkins,设置动态Jenkins-slave工作节点到K8S集群中
运维归一
DevOpsjenkinsdockerkubernetes
视频教程视频教程:https://edu.csdn.net/learn/38191/604447?spm=1003.2001.3001.4143Jenkins部署,设置动态agent到K8S集群中centosdockerjenkinskubernets7.920.102.28919.10通常情况下jenkins单节点自己可以工作,但是一旦发布任务量巨大,server端自己肯定是靠不住的。为了解决这
- 如何在Ubuntu 20.04系统中安装Docker
1.更新系统包索引首先,确保系统包索引是最新的。打开终端并运行以下命令:sudoaptupdate2.安装必要的依赖包确保系统中安装了apt-transport-https、ca-certificates和curl等必要的依赖包:sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common3.添加Doc
- 小团队的极简自动化运维方案(基于华为云)
徐福记c
运维运维
结合华为云原生服务和极简工具链实现高效可控的自动化部署:一、架构简化设计(适配小团队)1.部署模式选择graphLRGitLab-->|推送代码|GitLab-CI-->|构建镜像|华为云SWR(容器镜像仓库)GitLab-CI-->|执行部署|华为云CCI(云容器实例)-->|对外服务|ELB(华为云弹性负载均衡)华为云CCI-->|数据存储|RDS(华为云数据库)放弃K8s:使用华为云CCI(
- kafka+zk docker环境搭建
wtopps
Linuxkafkadockerkafka搭建kafkazk搭建
文章目录背景docker-compose安装构建docker-compose配置文件Kafka命令行测试消息的生产和消费使用Kafka自带工具执行压测背景本篇主要记录一下使用docker搭建kafka+zk的开发环境的过程。使用工具:dockerdocker-compose环境:CentOS7.2docker-compose安装安装前需确认已经安装Docker,这里不过多说明Docker的安装。安
- CentOS 7 中安装 Docker和Docker Compose
laolitou_1024
CentOSDevOpsDockercentosdockerlinux
本文介绍CentOS7系统安装Docker和DockerCompose的完整操作步骤一、环境准备验证系统内核版本:uname-r(需≥3.10)更新系统软件包:sudoyumupdate-y二、卸载旧版本sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest
- docker-compose部署mongodb 5.0.5集群
inventecsh
dockermongodb容器
一、服务器10.1.1.16510.1.1.16410.1.1.169二、生成mongodb.keyroot@mongodb:/data#opensslrand-base64756>mongodb.keyu2aDJG+yz9uLwdWSavN/yh7noG0wfnTvOalKO5xNuTMQ85daIqkWnOh1YgKzbosrqTvU1Np2PU4QpLJIHtwU1XfHgvkCQRR7ox
- UniAPM智能运维平台
UniAPM运维管理软件监控指标体系是一套面向业务服务、层次化、可量化的监控指标体系。该体系是以ITIL为理论基础,实现IT管理与业务服务的融合。从业务的视角来重新定位企业的IT系统,以可视化方式为管理者提供一览式的IT服务状况,确保IT服务可管理、可测量。项目地址:Github、国内Gitee演示地址:http://silianpan.cn/apm/演示账号:admin密码:admin用户手册:
- 理解持续测试,才算理解DevOps
软件产品的成功与否,在很大程度上取决于对市场需求的及时把控,采用DevOps可以加快产品交付速度,改善用户体验,从而有助于保持领先于竞争对手的优势。作为敏捷开发方法论的一种扩展,DevOps强调开发、测试和运维不同团队间的协作与沟通。持续集成和持续测试是一个在迭代中构建、测试产品并修复Bug的过程。它有助于团队在开发阶段的初期发现缺陷,这时的缺陷通常相对不那么复杂,并且更容易被解决。通过持续集成和
- Doris 数据集成 Kafka
不二人生
Doris实战doris数据仓库
Doris数据集成Kafka这是我们Doris数据集成篇的第二篇,前面我们介绍过通过Catalog进行集成的例子Doris基础篇—数据集成Catalog目前公司的很多数据服务都开始使用Doris了,目前使用下来感觉还是很方便的,比起Hadoop那一套少了很多运维的成本,而且整体的效率也不错,现在也要把ELK那一套日志分析的替换掉,后面日志分析也走Doris。关于如何使用Doris做日志分析,可以参
- 安装docker
chuhx
docker容器运维
有两种方式安装docker,分别是在线安装和离线安装,如果服务器可以连接外网,推荐使用在线安装方式。1、在线安装此处以centos系统为例:yuminstall-yyum-utilsyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyuminstall-ydocker
- Docker 安装报【未打开 com.docker.vmnetd 因其包含恶意软件此操作未对 mac 造成危害】
Docker的Bug原本以为是电脑中病毒了呢!解决方案:执行如下脚本即可#!/bin/bash#Stopthedockerservicesecho"StoppingDocker..."sudopkill'[dD]ocker'#Stopthevmnetdserviceecho"Stoppingcom.docker.vmnetdservice..."sudolaunchctlbootoutsystem
- Docker - Docker Compose
yueerba126
Dockerdocker容器运维
DockerCompose简介DockerCompose是一个由Docker官方开发的开源工具,用于定义和运行多容器的Docker应用。如果你想要一次启动多个容器,并且这些容器之间有依赖关系或者需要协同工作,那么DockerCompose是一个理想的工具。基本概念Compose项目:Compose的目标是处理“项目”。一个项目对应于一个“docker-compose.yml”文件,该文件描述了一组
- 非容器化部署prometheus+grafana
罗sir 99
devopsprometheusgrafana
容器部署和非容器部署(直接在物理机或虚拟机上安装)Prometheus和Grafana各有优缺点,主要区别如下:1.部署和管理的便利性容器部署:使用容器技术(如Docker)可以简化应用的部署和配置。只需拉取镜像并执行dockerrun或docker-compose文件即可部署,且不依赖底层系统的配置,便于快速部署和迁移。非容器部署:需要手动下载二进制文件、解压、配置和管理,步骤相对繁琐。系统环境
- Dockerfile 深入浅出:从基础到进阶全解析
TechStack 创行者
#服务器容器Linuxdocker容器运维服务器
Dockerfile深入浅出:从基础到进阶全解析各位同学,大家好!欢迎来到今天的Dockerfile课程。Docker技术在当今的软件开发和部署领域可以说是非常热门,而Dockerfile作为构建Docker镜像的关键文件,掌握它对于我们进行容器化开发和部署至关重要。今天,我将用最通俗易懂的语言,从基础到进阶,结合常见例子,带大家全面深入地学习Dockerfile的编写。这份教程非常实用,建议大家
- Jetson nano配置Docker和torch运行环境
black0moonlight
docker容器运维
这里将介绍Jeston安装docker并部署walk-these-way的jeston镜像。注意,该方法有版本问题,Jepack4.6.1的python3.6torch无法与unitree官方提供的python3.8库兼容1.Docker安装这里安装的是dockerengine,如果已经有了dockerdesktop也同样可以使用。Ubuntu|DockerDocsRunthefollowingc
- Docker 与 Docker Compose 的联系与区别,迁移项目时有什么不同吗?
Ven%
简单说深度学习docker实用linux命令实用系列dockereureka容器
Docker与DockerCompose的联系与区别联系:底层依赖:DockerCompose是基于Docker的工具,依赖Docker引擎运行。容器管理:两者均用于容器化应用的部署和管理。配置共享:DockerCompose的docker-compose.yml文件本质上是对多个Docker命令的封装和组合。区别:特性DockerDockerCompose适用场景单容器部署多容器应用(微服务架构
- docker引擎断电后启动失败常见问题和解决方案
handsomestWei
运维docker容器运维云原生
docker引擎断电后启动失败常见问题和解决方案常用排查命令查看containerd运行状态systemctlstatuscontainerd查看docker引擎运行状态systemctlstatusdocker在系统日志中查看docker引擎最近日志并持续追踪journalctl-udocker.service-f-n100常见问题和解决容器加载失败问题使用journalctl命令查看docke
- Docker中GPU的使用指南
俞兆鹏
云原生实践docker容器运维
在当今的计算领域,GPU(图形处理单元)已经成为了加速各种计算密集型任务的关键硬件,特别是在深度学习、科学模拟和高性能计算等领域。Docker作为流行的容器化平台,允许开发者将应用程序及其依赖打包成一个可移植的容器,在不同的环境中运行。当需要在Docker容器中利用GPU的计算能力时,我们需要进行一些特定的配置和设置。本文将详细介绍如何在Docker中使用GPU,从环境准备到实际应用,帮助你充分利
- pycharm ssh 远程连接docker 容器 进行debug调试代码
Panesle
pycharmsshdocker
pycharmssh远程连接docker容器进行debug调试代码1.用镜像启动好一个容器2.安装ssh工具aptupdateapt-getinstall-yopenssh-server3.配置ssh的config文件vim/etc/ssh/sshd_config配置修改好(端口、登陆权限):Port3210PermitRootLoginyesPasswordAuthenticationyes4.
- 使用 Node.js 部署高性能应用:从入门到进阶
Echo_Wish
运维探秘让你快速入坑运维node.js
使用Node.js部署高性能应用:从入门到进阶大家好,我是你们的运维伙伴Echo_Wish。今天我们来探讨如何使用Node.js部署高性能应用。Node.js因其异步非阻塞I/O模型、高效的事件驱动架构以及强大的包管理器npm,成为了现代Web开发的重要工具。我们将从简单的应用入手,逐步深入,探索如何优化Node.js应用的性能。希望你能从中受益!一、Node.js应用的基本部署首先,我们需要一个
- springboot整合rabbitMQ
twx95
java-rabbitmqspringbootrabbitmq
安装rabbitMQ虚拟机或者服务器上安装我这里使用的是vm虚拟机做演示第一步:安装docker参考linux安装docker-CSDN博客第二步:拉取rabbitMQ镜像3-management(镜像版本)dockerpullrabbitmq:3-management查看镜像是否拉取成功dockerimages第三步:运行rabbitMQdockerrun\-eRABBITMQ_DEFAULT_
- 解决minikube无法获取到baseimage的问题 Unable to find image ‘gcr.io/k8s-minikube/kicbase 202409
如何在5年薪百万
kubernetes容器云原生
问题Unabletofindimage'gcr.io/k8s-minikube/kicbase:v0.0.44@Unabletofindimage'gcr.io/k8s-minikube/kicbase:v0.0.44@sha256:eb04641328b06c5c4a14f4348470e1046bbcf9c2cbc551486e343d3a49db557e'locallydocker:Erro
- 如何构建一个 Docker 镜像?
大数据追光猿
大模型docker容器运维人工智能学习方法transformerpython
1.创建Dockerfile文件(1)选择工作目录首先,创建一个项目目录,并进入该目录:mkdirmy-docker-projectcdmy-docker-project(2)创建Dockerfile使用任何文本编辑器(如nano、vim或gedit)创建一个名为Dockerfile的文件:nanoDockerfile注意:Dockerfile文件名没有扩展名(例如.txt或.conf),必须是纯
- 《Docker 核心概念揭秘:如何让软件开发像烹饪一样简单》
TechStack 创行者
#服务器容器Linuxdocker容器运维
Docker核心概念通俗解读1.镜像(Image)——软件的“预制菜”是什么:镜像是打包好的软件环境,包含代码、工具、配置等所有依赖,就像餐厅提前备好的半成品菜,拆开包装就能烹饪。核心特点不可修改:一旦制作完成,镜像内容就固定不变,确保不同环境运行效果一致。分层结构:像叠积木一样分层构建,基础层(如操作系统)和功能层(如Python环境)可复用,节省存储空间。2.容器(
- 使用docker部署RabbitMQ
Java码农也是农
dockerrabbitmq消息队列springcloud
docker搭建RabbitMQ1.拉取RabbitMQ镜像dockerpullrabbitmq:management注意:要拉取rabbitmq:management,如果直接pullrabbitmq,创建对应容器后可能无法通过浏览器访问页面,好像还需要下插件...2.创建rabbitmq容器dockerrun-d--namerabbit-eRABBITMQ_DEFAULT_USER=admin
- CentOS 上安装 Docker 的详细指南
li.wz
软件环境&运维CentOSDockercentosdocker容器
CentOS上安装Docker的详细指南一、前置条件在开始安装Docker之前,确保以下几点:操作系统版本:本文以CentOS7和CentOS8为例。如果你使用的是其他版本,请参考官方文档。权限要求:需要使用root用户或具有sudo权限的用户。二、卸载旧版本首先检查并卸载系统中可能存在的旧版本Docker,旧版本的Docker称为docker或docker-engine:sudoyumremov
- 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独立出来,数据持