- llama.cpp 编译安装@Ubuntu
skywalk8163
项目实践人工智能llamaubuntulinux人工智能
在Kylin和Ubuntu编译llama.cpp,具体参考:llama模型c语言推理@FreeBSD-CSDN博客现在代码并编译:gitclonehttps://github.com/ggerganov/llama.cppcdllama.cppmkdirbuildcdbuildcmake..cmake--build.--configRelease#可选安装makeinstall#或可选添加路径ex
- keras.optimizers优化器中文文档
地上悬河
python开发语言后端
优化器optimizers优化器是编译Keras模型必要的两个参数之一model=Sequential()model.add(Dense(64,init='uniform',input_dim=10))model.add(Activation('tanh'))model.add(Activation('softmax'))sgd=SGD(lr=0.01,decay=1e-6,momentum=0.
- 通俗易懂:什么是Java虚拟机(JVM)?它的主要作用是什么?
大龄下岗程序员
mysqljavamysqlspring
Java虚拟机(JavaVirtualMachine,JVM)是一种软件实现的抽象计算机,它负责执行Java字节码(Bytecode)。Java程序并不是直接在物理计算机上运行,而是先由Java编译器将源代码编译成与平台无关的字节码,然后由JVM负责读取字节码并在实际硬件架构上运行。JVM的主要作用包括以下几个方面:1.跨平台性-JVM是Java语言“一次编写,到处运行”(WriteOnce,Ru
- SQLite版本3中的文件锁定和并发(七)
代码工匠云
数据库SQLiteC与c++sqlitec++数据库
返回:SQLite—系列文章目录上一篇:自己编译SQLite或将SQLite移植到新的操作系统(六)下一篇:SQLite—系列文章目录正文:1.0SQLite版本3中的文件锁定和并发SQLite版本3.0.0引入了新的锁定和日志功能旨在提高SQLite版本2的并发性的机制并减少作家的饥饿问题。新机制还允许交易的原子提交涉及多个数据库文件。本文档介绍新的锁定机制。目标受众是想要理解和/或修改的程序员
- webpack.prod.js(webpack生产环境配置文件)
门板_
webpackjavascript前端
生产环境:只打包不运行本地服务器对于在config目录下的webpack.prod.js1.在根目录下运行npxwebpack--config./config/webpack.prod.js2.在package.json文件中配置"build":"npxwebpack--config./config/webpack.prod.js"constpath=require('path')constESL
- Java学习笔记01
.wsy.
日常java学习笔记
1.1Java简介Java的前身是Oak,詹姆斯·高斯林是java之父。1.2Java体系Java是一种与平台无关的语言,其源代码可以被编译成一种结构中立的中间文件(.class,字节码文件)于Java虚拟机上运行。1.2.3专有名词JDK提供编译、运行Java程序所需要的种种工具及资源。JRE是运行Java所依赖的环境的集合。JVM是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功
- Webpack构建优化——区分环境
oWSQo
为什么需要区分环境在开发网页的时候,一般都会有多套运行环境,例如:在开发过程中方便开发调试的环境。发布到线上给用户使用的运行环境。这两套不同的环境虽然都是由同一套源代码编译而来,但是代码内容却不一样,差异包括:线上代码被特殊压缩过。开发用的代码包含一些用于提示开发者的提示日志,这些日志普通用户不可能去看它。开发用的代码所连接的后端数据接口地址也可能和线上环境不同,因为要避免开发过程中造成对线上数据
- Vue 模版编译原理
I will.874
vue.jsjavascript前端
当我们使用Vue编写完一个组件以后,Vue会根据模版编译一个render函数,调用render函数生成虚拟DOM,然后将虚拟DOM映射成真实DOM当数据发生变化时,Vue会触发更新视图,调用render函数返回新的虚拟DOM,对比新旧虚拟DOM,修改真实DOM,从而更新页面在此期间,有以下4个关键步骤:模版编译。生成渲染函数render执行render函数生成虚拟DOM首次渲染,根据虚拟DOM生成
- 动态多态的注意事项
Austin_1024
动态多态静态多态虚函数子类重写父类虚函数实现动态多态
大家好:衷心希望各位点赞。您的问题请留在评论区,我会及时回答。多态的基本概念多态是C++面向对象三大特性之一(多态、继承、封装)多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别:静态多态的函数地址早绑定——编译阶段确定函数地址。动态多态的函数地址晚绑定——运行阶段确定函数地址。下面通过案例讲解多态:#incl
- C++进阶学习(3)类类型转换
一只特立独行猪
C++的学习c++学习
文章目录一、类类型转换1.构造函数构造2.类型转换函数一、类类型转换数据类型转换在程序编译时或在程序运行实现基本类型←→基本类型基本类型←→类类型类类型←→类类型类对象的类型转换可由两种方式说明:构造函数转换函数称为用户定义的类型转换或类类型转换,有隐式调用和显式调用方式1.构造函数构造当类ClassX具有以下形式的构造函数:说明了一种从参数arg的类型到该类类型的转换ClassX::ClassX
- 向开发板上移植ip工具:将ip工具移植到开发板系统中
凌肖战
linuxarm开发网络
一.简介前面一篇文章对ip工具源码进行了交叉编译,生成了ip工具。文章如下:向开发板上移植ip工具:交叉编译ip工具-CSDN博客本文对生成的ip工具进行移植,即移植到开发板系统中,并确定是否可用。二.向开发板上移植ip工具:将ip工具移植到开发板系统中
- C++ primer 第十二章
红鼻子怡宝
c++primerc++开发语言
动态分配的对象的生存期与它们在哪里创建无关,只有当显式地被释放时,这些对象才会销毁。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。栈内存用来保存定义在函数内的非static对象。堆内存用来存储动态分配的对象。静态或栈内存中的对象由编译器自动创建和销毁,而堆内存中的对象必须显式地销毁它们。1.动态内存与智能指针运算符new在动态内存中为对象分配空间并返回一
- 5. C++ 局部静态变量在什么时候分配内存和初始化?
九五一
C++知识c++javajvm开发语言数据结构
C++局部静态变量在什么时候分配内存和初始化?对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的;如果初始化,那么初始化发生在任何代码执行之前,属于编译期初始化。由于内置变量无须资源释放操作,仅需要回收内存空间,因此程序结束后全局内存空间被一起回收,不存在变量依赖问题,没有任何代码会再被执行!C++引入了对象,这给全局变量的管理带领新的麻烦。C++的对象必须有构造函数生成,并最终执
- 【编译原理】一篇就够了——学习笔记与课程实验超详细整理
一棵___大树
编译原理学习笔记学习算法
⭐⭐⭐⭐⭐⭐Github主页https://github.com/A-BigTree更多学习笔记链接https://github.com/A-BigTree/college_assignment编译原理实验https://github.com/A-BigTree/college_assignment/compiler_Experiment如果可以,麻烦各位看官顺手点个star~如果文章对你有所帮助
- RockyLinux8 & RockyLinux9安装postgresql16-devel开发包
ynzhangyao
postgresql
1、PG的插件扩展有些需要自行编译,需要安装PG开发包2、RockyLinux8安装#创建用户先useraddpostgressudodnfinstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudodnf-qymoduledisa
- webpack快速基础
风漫漫雨歇歇
webpackwebpack前端前端框架
文章目录webpack快速基础1.概念1.1入口1.2输出(output)1.3loader1.4插件(plugin)2.建立项目,用于测试功能2.1安装webpack,2.2创建webpack配置文件,2.3配置package.json,运行项目3.配置mode开发环境4.配置entry编译入口5.配置output编译出口6.配置加载csswebpack快速基础1.概念webpack是现代Jav
- 解释C语言中的预处理指令(如#include,#define)
Layla_c
C语言c语言c++算法
解释C语言中的预处理指令(如#include,#define)C语言中的预处理指令是编译器在编译源代码之前首先处理的指令。这些指令通常用于包含头文件、定义宏和进行条件编译。下面是一些常见的预处理指令及其解释:#include#include指令用于包含其他文件的内容。这通常用于包含标准库头文件或用户自定义的头文件。有两种包含文件的方式:复制代码*`#include`:这种方式用于包含系统头文件,编
- C++中,#define和const有什么区别? / 静态链接和动态链接有什么区别?
Layla_c
C语言C++c++前端jvm
一、C++中,#define和const有什么区别?C++中,#define和const都用于定义常量,但它们在用法和特性上存在显著的区别。定义与用途:#define是C++预处理器的指令,用于定义宏。宏可以是函数、对象、类型等,它的作用是在预处理阶段对代码进行文本替换。const是C++的关键字,用于定义常量。这些常量在编译阶段生效,并带有数据类型。const定义的常量必须在声明时初始化。编译器
- .net core Program.cs中读取appsettings.json路径读取错误问题
L*先生
.net.netcore
在.netcore3.1中遇到读取appsettings.json路径读取错误问题.在.netcore3.1中使用以下语句读取,其中第一条验证可用,其他未验证过。3.1比较特殊,其他版本似乎没有这个问题.1.验证可用varconfiguration=newConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJson
- 利用K8S Statefulset搭建Etcd集群 - 本地存储
夜晓码农
大数据Dockerkubernetesetcd容器
目录概述测试环境yaml配置service.yamlcluster.yamlQ&A参考链接概述公司因项目需要使用K8S部署ETCD集群供其他业务调用,网上搜索了解了下,一般K8S搭建ETCD集群大部分都是使用EtcdOperator来搭建。但是公司的项目运行在离线ARM架构平台,直接使用网上EtcdOperator代码,他们提供的镜像都是x86_64架构,经过Opeartor编译等尝试,最后都以失
- 免安装免配置环境的免费 ios 调试工具 sib 来啦
大白菜栋栋
sib是以gidevice为底层实现的iOS调试工具,因为go语言特性,编译好的二进制文件可以直接运行,所以不需要额外配置python环境或者go环境,直接下载3M左右的包解压就可以使用啦!sonic组织也在持续参与建设gidevice。当前迭代了数月,到达了1.1.2版本,基础功能如下:```设备基础信息获取、设备监听App安装卸载、启动终止查看进程信息启动xctest相关,如:启动Wda、Fa
- 突破编程_C++_C++11新特性(type_traits的概念以及核心类型特性)
breakthrough_01
c++开发语言
1type_traits的概述type_traits是C++标准模板库(STL)中的一个头文件,它定义了一系列模板类,这些模板类在编译期获取某一参数、某一变量、某一个类等的类型信息,主要用于进行静态检查。通过使用type_traits,程序员可以在编译时就获得关于类型的详细信息,从而可以在不实际运行程序的情况下进行类型相关的优化和检查。type_traits中的内容主要可以分为以下几类:辅助基类:
- 【CentOS7】【Nginx】CentOS7源码编译并安装nginx
小丛的知识窝
nginx运维服务器
更新yumsudoyumupdate-y安装必要的编译工具和依赖项sudoyuminstall-ygccpcre-developenssl-develzlib-devel下载Nginx源代码wgethttp://nginx.org/download/nginx-1.20.1.tar.gz解压源代码包tar-zxvfnginx-1.20.1.tar.gz进入解压后的目录cdnginx-1.20.1配
- Ambari——编译——解决解决windows和linux下phantomjs链接超时问题
空了虾摸索
Ambariambari-排错ambariwindowslinux
您的支持是我继续创作与分享的动力源泉!!!您的支持是我继续创作与分享的动力源泉!!!您的支持是我继续创作与分享的动力源泉!!!错误日志:[INFO]CopyingextractedfolderC:\Users\LENOVO\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip-extract-1786692611821\phantomjs
- html5 websocket 手机,websocket在h5上正常,编译到手机上就连不上
猫研所
html5websocket手机
对接的网易云信微信IMSDK,在h5上能建立起连接,在手机端不行,截图是h5的链接,下面是app的日志:20:10:34.247连接websocket参数"wss://wlnimsc0.netease.im/socket.io/1/websocket/378166b5-af18-4372-a0a5-05aee5a1d882"atuni-app:///sdk/yunxin-wx/vendors/NI
- 最新版android stuido加上namespace
修行者对666
androidstudio配置问题android
每个Android模块都有一个命名空间,此命名空间用作其生成的命名空间由模块的build.gradle文件中的namespace属性定义,如以下代码段所示。namespace最初会设为您在创建项目时选择的软件包名称。KotlinGroovyandroid{namespace"com.example.myapp"...}在将应用构建为最终应用软件包(APK)时,Android构建工具会将命名空间用作
- 【前端】CommonJS和ES Module
Lucky小维
前端前端
区别语法差异:CommonJS:使用require()导入模块,使用module.exports或exports导出模块。ESModule:使用import导入模块,使用export导出模块。编译时vs运行时:CommonJS是在运行时加载模块,模块代码是动态执行的。ESModule是在编译时静态解析模块依赖关系,以便更好地进行优化和静态分析。异步加载:CommonJS不支持异步加载模块,只能同步
- Vue项目使用process.env关键字及Vue.config.js配置解决前端跨域问题
百思不得小李
JS实战记录vue2实战记录javascript前端vue.js
1.process.env是Node.js中的一个环境1.打开命令行查看环境:2.process.env与VueCLI项目VueCli有以下三种运行模式development模式用于vue-cli-serviceservetest模式用于vue-cli-servicetest:unitproduction模式用于vue-cli-servicebuild和vue-cli-servicetest:e2
- C++引用
Hungry_11
C++程序设计c++数据结构
认识引用引用的概念引用的特性引用做参数引用的底层实现方式引用的概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。但是引用自身占用内存,引用也是一种变量。只不过和普通变量不一样。voidTestRef(){inta=10;int&ra=a;//窗口->反汇编,即可得到如下原码对应的汇编代码:inti=5;00A013DEm
- c++的动态类
seasermy
c++编程技术c++boostany动态类增加类的属性成员
特色源于变化,不变的东西,不灵活的东西,一般会失去光辉,技术也是,如果一个技术容易扩展,那么它是一个好技术今天介绍c++的动态类特性:在介绍之前,先介绍c++11中的两个关键字,auto和any,(1)autoauto可以表示任何类型,是c++11中的一个关键字符号,可以使得代码简洁,不用关心具体的类型,类型在编译器编译的时候决定:如:autoa=5;//intautob=5.0f;//float
- 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独立出来,数据持