- Centos7、8更换镜像源
萌小帝
运维之路linux:一阶段centos服务器linux
一、删除旧的yum环境rm-rf/etc/yum.repos.d/*二、下载新的Base源CentOS7curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repoCentOS8curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.ali
- vue跨域解决的几种方案【建议收藏】
小二爱编程·
vue.jsjavascript前端
vue跨域解决的几种方案一、开发环境解决跨域方法平时使用vue开发的时候,大多会使用vue-cli搭建项目,在vue-cli搭建的项目中有一个配置文件vue.config.js,可以在该文件中进行相应的配置解决开发环境的跨域问题。第一步设置公共url:api/index.jsimportaxiosfrom'axios'importrouterfrom'@/router/index.js'impor
- android微信支付返回-1,支付失败总结!
yx123yp
Android微信支付android
解决办法1:看看二次生成sign的参数顺序是否跟我发的一致!很坑爹,必须一样才行!解决办法2:请求得到prepayid参数的url必须是图中的Url
- nuxt微信分享实战
玩代码的菜鸟
javascriptvue.js微信
前提工作:公众号账号需要认证并且配置域名,例如域名为http://www.baidu.com,配置应该为baidu.com1.在plugins目录下新建一个wxShare.js文件importVuefrom'vue'importwxfrom'weixin-js-sdk'Vue.prototype.$wechat=wxexportdefault()=>{//这个url必须传当前页面的url,不然会一
- python新浪股票接口_python 爬虫sina股票数据
weixin_39559119
python新浪股票接口
#100行代码,实现财富自由,一起加油importurllibimportpandasaspdimportjson#爬虫获取股票金融=------------------数据爬虫------------------------------------#defda(code,num):url='http://vip.stock.finance.sina.com.cn/quotes_service/a
- 利用python爬取网页神技_Python神技能 | 使用爬虫获取汽车之家全车型数据
weixin_39644952
利用python爬取网页神技
最近想在工作相关的项目上做技术改进,需要全而准的车型数据,寻寻觅觅而不得,所以就只能自己动手丰衣足食,到网上获(窃)得(取)数据了。汽车之家是大家公认的数据做的比较好的汽车网站,所以就用它吧。(感谢汽车之家的大大们这么用心地做数据,仰慕)俗话说的好,“十爬虫九python”,作为一只java狗,我颤颤巍巍地拿起了python想要感受一下scrapy的强大。。。在写这个爬虫之前,我用urllib2,
- 今天给大家分享一个使用scrapy库的爬虫程序,并使用Python来爬取滴滴官网的视频
华科云商小吴
scrapy爬虫python
昨天我一个朋友找我,他和我在一起一天也没说,晚上吃完饭才跟我说,让我帮他把滴滴官网的视频都弄出来,吃完饭都十点了,我就今天早上来帮他写个代码,就用scrapy库的爬虫程序Python来爬取一下,以下是我写的:```pythonimportscrapyclassDidiglobalVideoSpider(scrapy.Spider):name='didiglobal_video'start_urls
- curl get post 获取数据
好好学习 666
php函数curl
/***curl的GET方式获取数据*@param$url*/publicstaticfunctiongetCurl($url,$outTime=60){$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT
- JWT 解码中的中文字符问题解决
奶糖 肥晨
js服务器运维
文章目录问题背景问题分析1.**Base64Url编码问题**2.**`atob`函数的局限性**3.**UTF-8编码问题**解决方案1.**Base64Url解码**2.**UTF-8解码**3.**完整代码**测试与验证输入JWT输出结果最近在开发一个基于JWT(JSONWebToken)的身份验证功能时,我遇到了一个让人头疼的问题:解码后的JWT中的中文字符显示为乱码。经过一番折腾,终于找
- 当我在浏览器中输入www.xxx.com到底发生了什么?
isolusion
计算机网络
每天我们都会在浏览器中输入网址,比如www.xxx.com,然后按下回车键,网页就会神奇地加载出来。这看似简单的操作背后,实际上隐藏着一系列复杂的技术流程。本文将深入探讨从输入网址到页面加载完成的整个过程,帮助你理解浏览器、网络协议和服务器是如何协同工作的。1.输入网址并按下回车当你在浏览器的地址栏中输入www.xxx.com并按下回车键时,浏览器会开始解析这个URL(统一资源定位符)。URL通常
- 常见前端安全问题及解决方案
AmyGeng123
前端安全
一、跨站脚本攻击(XSS)问题描述XSS攻击通过向网页注入恶意脚本(如JavaScript),在用户浏览器中执行,窃取Cookie、会话Token或其他敏感信息。持久型XSS:恶意代码被存储到服务器数据库(如评论区),长期影响用户。非持久型XSS:通过URL参数或表单输入直接触发,攻击范围有限。解决方案对用户输入内容进行转义和过滤,禁止等危险标签的解析。使用HttpOnly属性限制
- 【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
嗯嗯嗯吧
面试学习路线阿里巴巴mybatisspringxml
mybatis的常用配置配置数据库连接#驱动类名称spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#数据库连接的urlspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_testcharacterEncoding=utf8&useSSL=false#连接数据库的名
- SpringMVC的工作流程
嗯嗯嗯吧
面试学习路线阿里巴巴状态模式
1.工作流程(1)用户通过浏览器向服务器发送请求,请求会被SpringMVC的前端控制器DispatcherServlet拦截。(2)DispatcherServlet拦截到请求后,会调用HandlerMapping(处理器映射器)。(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。(4)Dispatcher
- 一步一步学SpringBoot(三)---SpringBoot与德鲁伊(Druid)的故事
可乐止饱
SpringBootDruidSpringBootDruid配置
添加依赖com.alibabadruid-spring-boot-starter1.1.0配置连接池#JDBC配置spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&character
- HTML图像
倒霉男孩
html+css学习笔记html前端
在HTML中,图片使用标签定义。标签是空的,它只包含属性,并没有关闭标签。通过src属性指定图像的URL:alt属性alt属性提供了一种图像的替换文字,如果用户因为某些原因不能查看,浏览器找不到一个图像它就会显示alt属性的值:alt是必须的,没有它的网页无法正确验证。HTML屏幕阅读器屏幕阅读器是一个软件程序,读取HTML代码,转换为文本,并允许用户“听”这些内容。屏幕阅读器对盲人、视力受损或学
- Next.js 开发指南 路由篇 | App Router
人工智能_SYBH
课程推荐javascript前端开发语言css开发实战
Next.js开发指南-冴羽-掘金小册前言路由(routers)是应用的重要组成部分。所谓路由,有多种定义,对于应用层的单页应用程序而言,路由是一个决定URL如何呈现的库,在服务层实现API时,路由是解析请求并将请求定向到处理程序的组件。简单的来说,在Next.js中,路由决定了一个页面如何渲染或者一个请求该如何返回。Next.js目前有两套路由解决方案,之前的方案称之为“PagesRouter”
- 【Node.js】制作简易图床应用
卷儿~
Node.jsnode.jsjavascript前端
图床服务(picturehostingservice,不是“picturebed”吼),是web服务中常见常用的服务。其功能在于允许用户将图片放在服务器上并提供公开可访问的链接。有了上一节(【Node.js】使用Multer的文件上传下载)的铺垫,这一节就来小试牛刀,制作一个简易的仅支持上传和浏览的图床应用了需求分析首先,提供上传图片的接口。在上传图片后,需要返回给用户图片的url以便于用户的访问
- 用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)
莓事哒
Python网络爬虫seleniumpycharm爬虫
一、豆瓣电影肖申克的救赎短评url=https://movie.douban.com/subject/1292052/comments二、基本知识点讲解1.Selenium的基本使用Selenium是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下Selenium的核心功能:webdriver.Chrome:启动Chrome浏览器实例。driver.get(url):打开指定的
- 爬虫1--爬取图像
ballball~~
爬虫学习爬虫
简介:个人爬虫学习分享,如有错误,欢迎批评指正。爬虫小案例1:爬取网页图打开浏览器,搜索任意网络图像,如下红圈图像,单击图像,后再点击鼠标右键,选复制图像链接,该链接就是这个图像的url地址。运行如下代码,将上面复制的图像链接(url)代替下面代码中url=''的那串字符串,即可爬下该图像,不同图像如上一样,更换url地址即可。importrequests#网络图像的URL地址url='https
- 超详细 Python 爬虫指南
java15655057970
面试学习路线阿里巴巴python爬虫开发语言
目录一、爬虫的基本原理二、爬虫实现步骤1.准备工作2.详细代码实现三、处理反爬机制四、爬取复杂数据的技巧1.JSON数据爬取2.分页数据爬取3.下载文件五、完整爬虫示例六、注意事项一、爬虫的基本原理HTTP请求与响应爬虫通过HTTP协议与目标网站服务器通信。发送请求时可指定URL、请求方法(GET或POST)、请求头等。服务器根据请求返回HTML页面、JSON数据或其他格式的响应。HTML解析HT
- django中配置websocket
qq_36606793
pythondjango实战练习djangowebsocketpython
python本身只支持http协议使用websocket需要下载第三方库pipinstall-Uchannels在安装在windows机器的时候。需要自信的C++支持,报错的时候,报错有地址告诉你下载URL配置需要在seting.py里配置,将我们的channels加入INSTALLED_APP里。INSTALLED_APPS=('django.contrib.auth','django.cont
- JavaScript Window Location
宇哥资料
JavaScriptjavascript前端开发语言
window.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。WindowLocationwindow.location对象在编写时可不使用window这个前缀。一些例子:一些实例:location.hostname返回web主机的域名location.pathname返回当前页面的路径和文件名location.port返回web主机的端口(80或443)loca
- HTTP Cookie header 中set-cookie格式
qq_35577990
fiddlerselenium
Cookie相关的Http头有两个Http头部和Cookie有关:Set-Cookie和Cookie。Set-Cookie由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个CookieCookie头由客户端发送,包含在HTTP请求的头部中。注意,只有cookie的domain和path与请求的URL匹配才会发送这个cookie。Set-CookieHeaderSet-Cookie响应头
- Python Tkinter库实战(用Entry和button控件做一个小型的浏览器)
IT界小菜鸡
笔记python开发语言
大家好,上一期我们大概了解了一下PythonTkinter库。这是一个方便快捷的GUI库;可以用短短几行代码生成出一个用户图形化接口的窗口。算是非常方便。既然前一期我们了解了tk库。那么我们今天就来做一个实战。今天这个实战项目源自于我一个奇奇怪怪的想法。当时打开浏览器的时候想着,既然我打开浏览器输入网址,搜索URL。既然别人可以,那我为什么不可以自己做一个呢?抱着这个想法,我就开始了这个实验。废话
- python调用DeepSeek的API
garfield_sun06
大模型python语言模型
1获取API获得deepseek开放平台的APIhttps://platform.deepseek.com/api_keys点击创建APIkey2调用方法方法一:采用openai的调用方法pipinstallopenai需要openai的包调用的代码框架fromopenaiimportOpenAIimportosclient=OpenAI(api_key='自己的APIkey',base_url=
- Linux第零节:Linux命令速查图表(按功能分类)
熊峰峰
5.Linuxlinuxphp
Linux命令速查图表(按功能分类)思维导图示意Linux命令文件操作权限管理系统管理网络操作文本处理压缩归档ls/cd/pwdmkdir/rm/cpcat/less/findchmodchownps/top/killshutdown/unamecurl/netstatnc/tcpdumpgrep/awk/sedtar/zip/unzip一、文件与目录操作命令功能描述常用选项示例ls列出目录内容-
- 使用PHP对接StockTV全球金融市场数据API实战指南
php股票接口
关键词:PHPAPI开发、金融市场数据、WebSocket实时数据、cURL实战一、项目概述StockTV作为全球领先的金融数据平台,提供覆盖股票、外汇、期货和加密货币的实时行情服务。本文将手把手教你使用PHP实现以下核心功能:✅RESTAPI调用:获取历史行情数据✅WebSocket订阅:实时价格推送✅生产级特性:异常重试、速率控制、数据缓存✅高性能优化:连接池、异步处理二、环境准备1.运行环境
- CSS3学习教程,从入门到精通,CSS3 图像属性知识点及案例代码(16)
知识分享小能手
前端开发网页开发编程语言如门css3学习前端csshtml5javascriptcss前端开发
CSS3图像属性知识点及案例代码一、图像属性概述CSS3提供了丰富的图像属性,可以控制图像的显示方式、大小、位置、滤镜效果等。以下是一些常用的图像属性:二、常用图像属性1.background-image作用:设置元素的背景图像。语法:background-image:url("image.jpg");案例:.box{width:300px;height:200px;background-imag
- Mac安装 brew
潇凝子潇
macosbrew
MacBook-Pro.ssh%/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"==>Checkingfor`sudo`access(whichmayrequestyourpassword)...Password:==>Thisscriptwillinstall:/
- 嵌入式Linux网络编程实战:基于libcurl实现Gitee文件上传
银河码
Linux网络编程linux网络giteec语言vscodetcp/ip服务器
嵌入式Linux网络编程实战:基于libcurl实现Gitee文件上传【本文代码已在立创·泰山派平台验证通过,可直接用于物联网设备数据上报场景】一、功能概述与实现效果1.1核心功能本地文件读取:支持任意二进制/文本文件Base64编码转换:符合RFC4648标准HTTP传输:通过libcurl实现,也可以使用HTTPS加密通信GiteeAPI对接:自动创建/更新仓库文件1.2运行效果演示#上传本地
- 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独立出来,数据持