- STM32学习笔记之常见外设汇总(原理篇)
望闻问嵌
#SoCstm32学习笔记
:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】:文章若有幸对你有帮助,可点赞收藏⭐不迷路:内容若有错误,敬请留言指正!原创文,转载注明出处文章目录踏入STM32的世界,就像进入一个充满神奇机关的城堡。每一个常见外设都是一把独特的钥匙,能解锁不同的功能领域。接下来,就为大家详细介绍这些神奇
- LINUX中的网络配置和管理
C8888899999
linux运维服务器
RHEL9:现代化配置架构存储革新:新配置:自动生成*.nmconnection文件旧配置:保留/etc/sysconfig/network-scripts/目录,修改现有ifcfg文件仍生效优势升级:支持更复杂的网络拓扑(如VPN、绑定接口的优先级策略)配置版本控制与回滚能力(通过nmcliconrollback)与云计算工具(cloud-init)深度集成NetworkManager核心优势与
- AI:274-深入探讨OpenCV中的ROI区域处理及其高级应用
一键难忘
opencv人工智能计算机视觉
本文收录于专栏:精通AI实战千例专栏合集https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~深入探讨OpenCV中的ROI区域处理及其高级应用在计算机视
- C#核心笔记——(六)框架基础
鹏易灵
c#asp.net.net.netcoreunity游戏引擎游戏程序
我们在编程时所需的许多核心功能并不是由C#语言提供的,而是由.NETFramework中的类型提供的。本节我们将介绍Framework在基础编程任务(例如虚的等值比较、顺序比较以及类型转换)中的作用。我们还会介绍Framework中的基本类型,例如String、DateTime和Enum.本章中的绝大部分类型位于System命名空间下,但以下几种类型除外:1.StringBuilder类型定义在S
- 【Netty篇】ByteBuf 详解(上)
码熔burning
NettyJavaNettyByteBuf
目录一、ByteBuf在Netty中扮演什么角色?二、ByteBuf的作用是什么?三、如何创建ByteBuf?四、创建ByteBuf的“葵花宝典”我的其他文章也讲解的比较有趣,如果喜欢博主的讲解方式,可以多多支持一下,感谢!了解Netty请看:【Netty篇】幽默的讲解带你入门Netty!建议收藏其他优质专栏:【SpringBoot】【多线程】【Redis】【✨设计模式专栏(已完结)】…等如果喜欢
- c语言之循环队列实现二叉树的层次遍历
kyrie_rlving
c二叉树循环队列
二叉树的层次遍历思想就是从根结点开始,从左至右从上层往下层挨个遍历。用一个数组实现的循环队列来实现就比较简单。根结点进入队列,然后出队,根节的左孩子不为空的话左孩子进队,后孩子不为空的话右孩子进队。然后循环如此直到循环队列空为止。代码如下:#include#include#definetree_size6//定义二叉树的结点为6typedefstructBinaryTree{//chardata;
- Istio 使用Spring Boot + GRPC构建部署微服务
地表最强菜鸡
IstioSpringBoot微服务istiospringboot
作为ServiceMesh和云原生技术的忠实拥护者,我却一直没有开发过ServiceMesh的应用。正好最近受够了SpringCloud的“折磨”,对Kubernetes也可以熟练使用了,而且网上几乎没有SpringBoot微服务部署到Istio的案例,我就开始考虑用SpringBoot写个微服务的Demo并且部署到Istio。项目本身不复杂,就是发送一个字符串并且返回一个字符串的最简单的Demo
- postman 使用技巧
疯狗挨踢
java常用功能记录
https://blog.csdn.net/qq_30036559/article/details/79462522
- 【Python爬虫实战】从文件到数据库:全面掌握Python爬虫数据存储技巧
易辰君
python爬虫python爬虫开发语言
个人主页:https://blog.csdn.net/2401_86688088?type=blog系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html目录前言一、文本文件数据存储的基础二、如何将爬取的数据存储为.txt文件三、如何将数据存储为.csv文件四、如何将数据存储为.json文件五、如何选择合适的存储格式六、MyS
- 2025年K8s最新高频面试题
清风 001
Linux系统kubernetes容器云原生
目录Kubernetes的核心组件有哪些,各自作用是什么?Pod和Deployment的区别?Service有哪些类型,分别适用于什么场景?ConfigMap和Secret有什么区别?StatefulSet和Deployment的主要区别是什么?什么是Ingress,有哪些常用实现方式?如何限制Kubernetes中Pod资源使用?Pod如何实现亲和性与反亲和性?Kubernetes如何实现健康检
- 使用AI 编写一个Mybatis SQL日志解析工具
飞一站
我的分享人工智能mybatissql
使用AI编写一个MybatisSQL日志解析工具背景尝试使用智谱清言AI编写一个工具,将MybatisSQL日志解析为可以执行的SQL语句。操作准备初始代码首先网站上找了一个有BUG的简单的实现https://blog.csdn.net/x541211190/article/details/107410409用提示词让AI分析代码将以上代码贴给AI,并增加提示词分析上面代码的的功能,让AI分析代码
- 2.1新建项目及项目目录和预览uniapp项目
小羊徐徐
uni-app
新建项目文件-新建-项目选择一个模板进入,我选择的是uni-ui项目。工程介绍你可以在uniapp教程https://uniapp.dcloud.net.cn/tutorial/project.html中查看更为详细的内容。预览uniapp项目在左上角工具栏可以选怎运行到浏览器和内置浏览器,运行到浏览器需要配置文件,通过右键属性查看地址使用如下格式可生效:C:\ProgramFiles\Mozil
- 网络安全之-信息收集
飞猪~
web安全安全
域名收集域名注册信息站长之家https://whois.chinaz.com/whois查询的相关网站有:中国万网域名WHOIS信息查询地址:https://whois.aliyun.com/西部数码域名WHOIS信息查询地址:https://whois.west.cn/新网域名WHOIS信息查询地址:http://whois.xinnet.com/domain/whois/index.jsp纳网
- 在 Rocky Linux 9 中更改 IP 地址的三种方法详解
柳依依@
php开发语言
RockyLinux9作为一款基于RHEL的社区发行版,其网络配置方法与之前的版本相似,但配置文件路径有所调整。本文将详细介绍三种在RockyLinux9中更改IP地址的常用方法,包括使用nmcli命令行工具、编辑网络配置文件以及使用nmtui文本界面工具。方法一:使用nmcli命令行工具(推荐)nmcli是NetworkManager的命令行工具,提供了便捷的网络配置方式。以下是使用nmcli更
- 数据结构-C语言版本(七)哈希集合和哈希表
暖阳冷月海无涯
c语言数据结构散列表哈希算法
数据结构中的哈希集合与哈希表:概念、操作与实战第一部分哈希集合和哈希表的分类及常见形式哈希表(HashTable)和哈希集合(HashSet)是基于哈希函数实现的高效数据结构,平均情况下可以提供O(1)时间复杂度的查找、插入和删除操作。1.哈希表(散列表)键值对存储结构,通过键快速访问值#defineTABLE_SIZE1000typedefstructHashNode{intkey;intval
- 内存池---c语言实现
d1306937299
C语言计算机基础c语言开发语言
内存池是一种为了避免cpu多次申请小块内存而节省cpu资源的技术。内存池预先申请一定数量的、容量相等的内存块。当需要使用内存时,从内存池中分出一部分内存块。内存池可以使得内存的分配效率提高。这里先写一个简单的内存池。第一部分内存池头文件#ifndefTHREADPOOL_H#defineTHREADPOOL_H#include"queue.h"//线程池结构typedefstruct{intthr
- Neural Network from Scratch in Cangjie: Part 4 - 仓颉从头开始的神经网络:第四部分
研究编程
神经网络深度学习华为开发语言
Today,wewilltrytorecreatetheoutputlayerforatypicalclassificationnetworkwiththehelpofthe`Softmax`activationfunction.Itwillletusnormalizetheoutputofthefinallayerinournetworkanddisplayprobabilitiesofwhic
- 微软Azure云开发和部署指南
夕夕不会码
azure人工智能开发语言
Azure是微软提供的综合性云计算平台,为开发者提供了一系列工具和服务来构建、部署和管理应用程序。Azure核心服务概览计算服务-Azure虚拟机:IaaS解决方案,可快速部署Windows或LinuxVM-Azure应用服务:PaaS服务,支持Web应用、API和移动后端-AzureKubernetes服务(AKS):托管Kubernetes容器编排-AzureFunctions:无服务器计算服
- 染色体可视化工具-生信工具40
让学习成为一种生活方式
信息可视化python数据分析
1.MG2C_v2.1MG2C(MapGenetoChromosome)是一个基因组数据可视化工具,主要用于将基因、标记、QTL等功能性元素映射到染色体上。MG2C_v2.1是其升级版本,提供了用户友好的界面和更多自定义选项。功能特点染色体绘图:将基因组或染色体上的标记、基因、QTL映射到染色体图中,并按用户提供的位置进行可视化。自定义绘图:支持自定义染色体形状、颜色、标记样式和标签。数据格式:以
- C++中::作用域运算符用法详解
盐焗咸鱼
C++
使用::作用域运算符,可以让你的代码减少出错的概率。今天在读空间配置器接口时,看到了如下代码。templateinlineT*_allocate(ptrdiff_tsize,T*){set_new_handler(0);T*tmp=(T*)(::opteratornew(size_t)(size*sizeof(T)));if(tmp==0){cerr<<"outofmemory"<
- linux工程师运维工程师.云计算工程师面试题.集锦
teayear
高薪面试题运维面试题职场和发展linux面试题linux服务器考试题云计算面试题
NETWORK1请描述TCP/IP协议中主机与主机之间通信的三要素参考答案IP地址(IPaddress)子网掩码(subnetmask)IP路由(IProuter)2请描述IP地址的分类及每一类的范围参考答案A类1-126B类128-191C类192-223D类224-239组播(多播)E类240-254科研3请描述A、B、C三类IP地址的默认子网掩码参考答案A类255.0.0.0B类255.25
- Linux 网络配置
hello-hebin
Linuxlinux
文章目录网络基础知识IP地址子网掩码DNSLinux操作系统网络配置网络基础知识IP地址IP地址是用于区分同一个网络中的不同主机的唯一标识。Internet中的主机要与其他机器通信必须具有一个IP地址,因为网络中传输的数据包必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由。IP地址可以为32位(IPV4,4个字节)或者128位(IPV6,16个字节)。通常使用点分十进制表示,例如
- Ubuntu22.04下安装RealtekRTL8125网卡驱动(亲测有效)
水木年華
服务器网络运维
最近工作电脑老是出现网络问题,可能是之前安装了防火墙,把网卡驱动搞崩了,我一直不解为嘛时好时不好,后面查资料发现有人跟我一样,于是就开始了换显卡驱动之路:参考链接1:https://blog.csdn.net/weixin_43932656/article/details/118007962参考链接2:[ubuntu22.04]ubuntu22.04编译r8152驱动出现thecompilerdi
- ASP.NET之六边形架构(Hexagonal Architecture)
CsharpDev-奶豆哥
架构asp.net
六边形架构,也称为端口与适配器架构(PortsandAdaptersArchitecture),是一种软件设计模式,旨在创建松耦合、可测试和易于维护的应用程序。下面介绍如何在ASP.NET中实现六边形架构。六边形架构核心概念领域核心:位于架构中心,包含业务逻辑和领域模型端口:定义应用程序与外部世界的交互接口主端口(驱动端口):API、UI等主动调用应用的入口次端口(被驱动端口):数据库、外部服务等
- ASP .NET Core 中对于 JWT 的封装与使用
爱吃番茄炒蛋..
.netcoreasp.netc#
JWT原理:JWT原理配置JWT(1)书写JWT配置节点,节点下创建SecKey,ExpireSeconds两个配置项,分别代表着JWT的密钥和过期时间(我这里配置在了appsettings.json中,过期时间单位为秒,可根据自身情况选择)(1)创建配置类,包含SecKey(密钥)、ExpireSeconds(过期时间)两个属性(例如JWTOptions类,名字等啥的不需要一样),方便我们读取配
- 阿里云高可用-容灾解决方案
asdfgh0077
云栖大会
阿里云高可用-容灾解决方案参考文章:(1)阿里云高可用-容灾解决方案(2)https://www.cnblogs.com/onetwo/p/6007059.html备忘一下。
- ASP.NET Core中 JWT 实现无感刷新Token
LongtengGensSupreme
asp.net后端
在Web应用开发中,用户登录状态的管理至关重要。为了避免用户频繁遇到登录过期的问题,我们可以通过实现JWT(JSONWebToken)刷新机制来提升用户体验推荐:使用RefreshToken(双Token机制)1.生成和使用双Token通常会生成两种Token:访问Token(AccessToken)和刷新Token(RefreshToken)。•访问Token:用于客户端与服务器之间的身份验证,
- 【.net core】【watercloud】数据库连接报错问题
MoFe1
.netcore数据库
错误信息:中文提示:连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:CannotOpenwhenStateisConnecting.DbType="MySql";ConfigId="0".EnglishMessage:Connectionopenerror.CannotOpenwhenStateisConnecting.DbType="MySql";ConfigId="0
- .net core 使用 freesql 备份结构和数据
小费的部落
.netcore
1、获取表结构//获取表结构,无分库ListdbTableInfos=_freeSql.DbFirst.GetTablesByDatabase(_freeSql.DbFirst.GetDatabases()[0]);2、序列化表结构,序列化时Table字段会循环引用,需要排除掉//备份表结构dbTableInfos.AsParallel().WithDegreeOfParallelism(_bac
- 12.kubespray部署k8s 1.26集群
l3n4e
kuberneteskubernetes集群部署kubernetes容器云原生devops架构
kubespray部署k8s1.26集群指南前言Kubespray是一个自由开源的工具,它提供了Ansible剧本(playbook)来部署和管理Kubernetes集群。它旨在简化跨多个节点的Kubernetes集群的安装过程,允许用户快速轻松地部署和管理生产就绪的Kubernetes集群。它支持一系列操作系统,包括Ubuntu、CentOS、RockyLinux和RedHatEnterpris
- 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独立出来,数据持