- flaresolverr环境搭建
野生猕猴桃
FlareSolverrflareSolverrcloudflare爬虫跳过cloudflare
FlareSolverr是一个基于浏览器自动化技术的反爬虫解决方案。它可以应对一些比较复杂的反爬虫策略,如Cloudflare、hCaptcha等,并提供了简单易用的API接口。具体来说,FlareSolverr就是一个被动式的浏览器渲染服务,它使用了HeadlessChrome和Puppeteer技术来模拟人工操作浏览器的行为,并通过自定义的JavaScript脚本和与浏览器进行交互,最终获取网
- Jenkins配置发送邮件步骤
weixin_34006468
运维
Jenkins配置邮件步骤,以下我是以腾讯企业邮箱账号作为演示1.配置Jenkins系统管理员邮件地址:下拉找到以下位置2.配置邮件通知继续下拉,找到邮件配置。输入SMTp服务器以及邮箱后缀,然后点击高级以及勾选测试配置输入SMTP服务器,用户默认邮件后缀3.进入高级配置选中使用SMTp认证,输入账号密码,使用SSL协议,输入SMTP端口4.点击测试邮件配置注意事项:如果是使用QQ邮箱之类的,使用
- nginx自动清理脚本
羽之大公公
Nginxnginx运维
linux#!/bin/bashlogs_path="/usr/local/nginx/logs"bak_path="/usr/local/nginx/logs/bak"DAYS=15mv${logs_path}/access.log${bak_path}/access_$(date-d"yesterday"+"%Y%m%d%H%M%S").logmv${logs_path}/error.log$
- 推荐一篇 学习SQL 的文章
@Carey
java零基础开始sql数据库
学习java,当然避不开数据库的知识,个人认为好学好理解的一篇文章,推荐给大家SQL语法基础知识总结|JavaGuide「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。准备Java面试,首选JavaGuide!https://javaguide.cn/database/sql/sql-syntax-summary.html#sql-%E8%AF%AD%E6%B3%95希
- 【软件测试】术语定义
Play_Sai
软件测试自动化测试性能测试接口测试术语定义软件测试
1、接口测试接口测试概念:是测试系统组件间接口的一种测试方法接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期接口测试能发现哪些问题:可以发现很多在页面上操作发现不了的bug、检查系统的处理异常能力、检查系统的安全性、稳定性、可以修改请求参数,突破前端页面输入限制2、性能测试并发用户数
- HarmonyOS开发实战:Node-API扩展能力接口
小小煤球
鸿蒙开发HarmonyOSOpenHarmonymicrosoft鸿蒙华为harmonyos前端鸿蒙系统开发语言
前言:扩展能力接口进一步扩展了Node-API的功能,提供了一些额外的接口,用于在Node-API模块中与JavaScript进行更灵活的交互和定制。这些接口可以用于创建自定义JavaScript对象等场景。基本概念在理解Node-API扩展能力接口之前,需要了解一些基本概念:模块:一个模块是一个可重用的、独立的代码单元。它封装了相关功能,并可以被其他模块引用和使用。命名空间:命名空间是一种用于组
- Hive SQL练习之影评案例
软件手
Hivemysqlhivehadoopsql大数据
找的练习hive,内容非原创链接https://www.cnblogs.com/frankdeng/p/9309668.html一、建表,导入数据1、建表[root@masterhadoop]#hiveLogginginitializedusingconfigurationinjar:file:/usr/local/src/apache-hive-1.2.2-bin/lib/hive-common
- python编写API接口实现数据筛选、查询与分页
唯余木叶下弦声
python开发语言
目录一、背景二、代码一、背景由于系统上需要分页展示数据,并提供按字段筛选数据的功能,于是需要我写个接口,以供前端使用。接口可以通过pythonflask框架实现。Flask是一个轻量级的Web框架,它提供了足够的灵活性来构建定制的RESTfulAPI。开发者可以根据需求轻松地设计和实现接口。数据的查询可以通过pymysql连接MySQL数据库实现。数据的筛选和分页可以通过堆叠where条件、row
- qt连接mysql(报错,误区,成功配置)
mengzhi啊
qtc++mysql
第一,问题一:低版本QT连接高版本mysql,就会报一些错。我试过qt5.6.3qt5.0.1连接mysql8.0.25,频繁出现这两种错误:erroropendatabasebecause"SSLconnectionerror:unknownerrornumberQMYSQL:Unabletoconnect"erroropendatabasebecause"Can'tconnecttoMySQL
- 1.5 编程基础之循环控制 45 金币 方法二(python3实现)
dllglvzhenfeng
CSP-JCSP-SNOIP历年真题计算机考研机试程序猿的数学算法人工智能python蓝桥杯CSP-J
OpenJudge-45:金币信息学奥赛一本通(C++版)在线评测系统[NOIP2015普及组]金币-洛谷1.5编程基础之循环控制_45金币https://blog.csdn.net/dllglvzhenfeng/article/details/1219932361.5编程基础之循环控制45金币(python3实现一)https://blog.csdn.net/dllglvzhenfeng/art
- VUE3笔记
一介书生.
前端javascriptvue.js前端
前端系列一、HTML5二、CSS3三、JavaScript四、jQuery五、BootStrap六、Element七、Ajax八、JSON九、VUE3第一章、基础一、vue简介1、学习阶段vue2基础vue-cli(vue的手脚架,专门做工程化开发)vue-router(实现前端路由的)vuex(vue存储数据的)element-ui(ui组件库)vue32、vue的特点采用组件化模式,提高代码复
- 前端性能优化-CSS性能优化
LYFlied
css前端css性能优化面试
文章目录一、内联首屏关键CSS二、异步加载CSS异步加载的几种方式1.js动态创建样式表link元素,并插入到DOM中。2.设置media属性3.设置rel属性4.rel="preload"三、文件压缩四、去除无用CSS五、有选择地使用选择器六、减少使用昂贵的属性七、优化重排与重绘1.减少重排2.避免不必要的重绘八、让元素及其内容尽可能独立于文档树的其余部分九、避免使用@import十、开启GPU
- flutter中Process.start执行命令后,kill对应进程
JIngles123
flutterflutter
问题类似这个:https://stackoverflow.com/questions/76244179/flutter-dart-how-to-kill-process-after-process-start我在flutter中用dart:io库中的Process.start执行一个命令行后,怎么也无法删除,尝试用dart给的process的pid,再kill掉,发现所给的并不是正确的pid,故此
- vue3 路由的使用
前端不加班
vue3vue.jsjavascript前端
路由的使用在传统的Web开发过程中,当需要实现多个站内页面时,以前需要写很多个HTML页面,然后通过标签来实现互相跳转。在如今工程化模式下的前端开发,像Vue工程,可以轻松实现只用一个HTML文件,却能够完成多个站内页面渲染、跳转的功能,这就是路由。TIP从这里开始,所有包含到.vue文件引入的地方,可能会看到@xx/xx.vue这样的写法。@views是src/views的路径别名,@cp是sr
- 前端-JS进阶-API/WebAPI/DOM
知恩️
前端javascripthtml
文章目录1.API与WebAPI2.DOM1.DOM树2.获取元素3.事件基础4.常见鼠标事件3.改变文本内容/元素属性1.改变文本内容2.改变元素属性4.改变表单属性5.改变CSS样式属性6.排他思想(算法)7.获取/修改/删除属性内容1.获取属性的值2.设置属性的值3.移除属性8.H5自定义属性9.节点操作1.父子节点2.兄弟节点3.创建/添加节点4.删除节点5.复制节点6.创建元素10.DO
- 问题解决:vue dev模式没问题,dist之后页面not found
Einstellung
前端vuejavascriptkoa2
导读:本菜鸡作为一个JavaScript的初学者,搞了一个Vue页面之后想将其在生产环境中部署。但是dist之后发现生成的静态页面只有首页访问正常,其余页面全部都是NotFound,百思不得其解。经过调查解决了问题。将自己学习和思考过程记录下来,供后来的人一个参考。SPA单页谈起要想解决dist之后notfound问题,首先要理解Vue的SPA单页特性,首先来看一下SPA定义:单页Web应用(si
- C/C++二维码生成库qrencode的使用和 Cmake的安装
weixin_41454036
linuxc/c++语言基础c++
1、在https://fukuchi.org/works/qrencode/下载qrencode库,我下的是qrencode-4.0.2.tar.gz版本。2、为该库生成vs解决方案,这里用到cmake跨平台编译工具,首先安装cmake,下载windows的cmake安装包,下载地址:https://cmake.org/download/我下载的是https://cmake.org/files/v
- arduino课件05倾斜传感器
Mr洋1
第五课倾斜传感器1.英文单词的学习单词意思circuit电路resistor电阻tilt倾斜franklin2.BenjaminFranklin英文网站学习:https://www.britannica.com/biography/Benjamin-Franklin*BenjaminFranklinoriginallywrotethatelectricityflowsfromthepositive
- vscode 脑图插件mindmap
赶路人儿
web前端工具
在日常办公中,我们经常使用脑图工具来说明一个复杂的“事情”,百度提供了一个在线的脑图工具,https://naotu.baidu.com/今天,我们来看下vscode中如何通过安装插件,来使用脑图功能。1、在vscode中搜索mindmap:这两个插件作者是同一个(大搜车公司开发的),这里选择第二个安装(第一个使用中有bug)。2、使用:创建km结尾的文件,vscode会自动识别该文件,打开后即可
- 安装MySQL,navicat以及Django配置遇到的一些问题
C.L.L
编程问题与解决mysqldjango数据库
MySQL安装问题安装MySQL按照了此文章:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客https://blog.csdn.net/weixin_39289696/article/details/128850498首先是遇到了startingtheserver红色叉号显示按照上面文章的介绍解决了此问题,但是对于小白的我文章说的还不是很清楚。具体方法:计算机右键->
- 速盾:cdn加速好还是整站加速好?
速盾cdn
网络web安全安全
CDN加速和整站加速都是在网站访问速度上的优化手段,但它们的实现原理和效果略有不同。CDN(ContentDeliveryNetwork)加速是利用分布在全球各地的服务器节点,将网站的静态资源(如图片、CSS、JavaScript等)缓存到离用户最近的节点上,从而提高用户访问这些资源的速度。CDN加速可以减轻源站的访问压力,提高网站的稳定性,并且有效地解决了不同地域用户访问速度慢的问题。此外,CD
- 3.实现nginx pod基于service name调用tomcat pod
哆啦A梦_ca52
修改为3个podroot@master:/opt/k8s-data/ymal/test#vimnginx-test-v1.yamlreplicas:3#tellsdeploymenttorun2podsmatchingthetemplateroot@master:/opt/k8s-data/ymal/test#kubectlapply-fnginx-test-v1.yaml查看增加ip地址的信息r
- 安全人员必备内网漏扫工具——fscan是什么?并Win11安装fscan扫描工具、操作方法
程序员鬼鬼
安全web安全开发语言php网络网络安全漏洞
fscan是什么?并Win11安装fscan扫描工具、操作方法文章目录fscan是什么?并Win11安装fscan扫描工具、操作方法fsacan是什么?*工作原理功能在win11中安装fscan*下载[go环境](https://go.dev/dl/)安装下载fscan解压下载安装proxifier配置go环境进行扫描在windows中的使用方法*扫描端口存活检测操作系统检测服务识别fsacan是
- nrm|npm快速切源
在你之后
npm前端node.js
npmERR!auditYourconfiguredregistry(https://registry.npmmirror.com/)doesnotsupportauditrequests.直接切源就ok了全局安装$npmi-gnrm查看所有源$nrmls*npm--------https://registry.npmjs.org/yarn-------https://registry.yarnp
- dex加密
汤米粥
dex加密
dex放在assets目录下还是被jadx读出来,看来dex还需要加密啊https://juejin.cn/post/7255483407559442491androidaabdex加密_mob649e8158a948的技术博客_51CTO博客
- Android 14(API 级别 34)中,DexClassLoader 不再支持从可写文件加载 dex/jar 文件件
汤米粥
classdexloader
Android14(API级别34)中,DexClassLoader不再支持从可写文件加载dex/jar文件。这意味着从Android14开始,你不能再使用DexClassLoader来动态加载位于内部存储中的dex/jar文件,除非这些文件被设置为只读。解决方法:如果你需要动态加载代码,可以考虑将相关文件保存到外部存储中,并为这些文件设置正确的读权限。然后使用DexClassLoader从外部存
- c++ 分布式服务器 1
ALIKAOvO
c++分布式开发语言
链接:https://pan.baidu.com/s/1VI749ucHLPSh71Q4gqoA9g提取码:nxalNginx服务器能处理静态请求->html,jpg动态请求无法处理服务器集群之后,每台服务器上部署的内容必须相同fastCGI帮助服务器处理动态请求nginx负载均衡反向代理服务器客户端并不能直接访问web服务器,直接访问到的是反向代理服务器客户端将请求发送给反向代理服务器,反向代理
- Nginx配置文件配置详解
Gin—L
nginx服务器运维
Nginx配置文件location配置详解文章目录Nginx配置文件location配置详解location介绍nginx文件结构访问控制基于用户认证开启状态页面https配置rewriteif基于浏览器实现分离案例防盗链案例location介绍官方文档location指令是nginx中最关键的指令之一,location指令的功能是用来匹配不同的URI请求,进而对请求做不同的处理和响应,这其中较难
- 谈谈nvm、nrm、pnpm的理解
段子君
nvmnrmpnpm前端
谈一谈目前用的最多的也是主流的工具nvm、nrm以及pnpm的理解。nvm一般我们在公司开发,公司一般可能会有多个项目,可能有新项目也有老项目,不同的前端工程可能依赖的node版本不一样。这个时候就需要我们拥有多个node版本来开发不同的工程,如何安装多个node版本并可以随意的切换我们的node开发环境,这个时候nvm就能完美的发挥出自己的优势。nvm版本过低是不兼容vue3的项目的,我推荐1.
- 洛杉矶出差第17天
Bruce_9043
我是一个小小的外贸人,主要做服装类别,前端开发和设计刚刚开始,因此海外出差比较多;继去年117天的纽约常驻之后,今年我又来到了洛杉矶这个城市,今天是第17天的生活了,送走了日夜相处的同事,从今天开始,我便一个人要生活了,大概还有38天的日子要去过,而我在这里的任务也逐渐变得清晰明朗起来,但难度依然很大。我们住在洛杉矶的downtown,整体房间的环境还是比较好,到办公室也就20分钟左右的路程,这是
- 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独立出来,数据持