- Android Studio开发学习(二)———修改主题颜色、应用名称和应用图标
勤劳的小菜鸟
AndroidStudio开发与学习androidstudio学习android编辑器
一、修改主题在Android中,使用android:theme="@style/Theme.Example"的语法是为了将一个特定的主题(Theme)应用到应用程序或特定的UI元素上。具体来说android:theme是一个在XML布局文件中使用的属性,它允许你指定一个特定的主题来影响布局中的视图或整个应用序。@style/Theme.Example指定了一个名为"Theme.Example"的主
- Android studio | From Zero To One ——手机弹幕
单北斗SLAMer
AndroidStudio应用开发androidstudio智能手机android手机弹幕java
=====================================================github:https://github.com/MichaelBeechanCSDN:https://blog.csdn.net/u011344545=====================================================滚动显示代码activity_ma
- Android AIDL接口
嵌入式_笔记
Androidandroid
一.AlDI接口简介AIDL(AndroidInterfaceDefinitionLanguage)是一种IDL语言,用于生成可以在Android设备上两个进程之间进行进程间通信(IPC)的代码。通过AIDL,可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法,从而满足进程间通信的需求。通常,暴露方法给其他应用进行调用的应用称为服务端,调用其他应用的方法的应用称为客户端,客户端通过绑定服务
- 安卓-AIDL接口
贴纸。。
安卓android
谈谈AIDL接口AIDL(AndroidInterfaceDefinitionLanguage,安卓接口定义语言)是Android中用于进程间通信(IPC)的一种机制。它允许在不同的进程中传递复杂的数据结构和执行方法调用。AIDL主要用于以下场景:当一个应用的不同组件(如Activity、Service等)运行在不同的进程中,需要进行通信时。多个应用之间需要进行通信和数据共享。AIDL的工作原理如
- ubuntu18.04 android,ubuntu18.04系统的安装以及基本配置
润禾家
ubuntu18.04android
1、安装ubuntu系统打开UniversalUSBInstaller,选择版本、ISO路径、U盘盘符;如下:create后,刻录好的u盘。电脑重启进入Bios设置启动u盘或光盘为起先。然后按步骤装起!Ok,这样基本一个ubuntu系统就装好了!安装系统期间,分区可以这么分:安装系统过程,最好语言选择简体中文,键盘选择汉语键盘.2、基本配置(1)下载源的配置(默认使用sohu,软件源选择)$ged
- android 实现头像堆叠效果
“嗯哈
android
1:依赖```implementation("com.github.bumptech.glide:glide:4.12.0")annotationProcessor("com.github.bumptech.glide:compiler:4.12.0")```第一种方式,布局创建frameLayout使用动态添加view方式实现``````代码中动态添加view```publicclassMain
- android aidl接口回调,Android Interface Definition Language (AIDL)
沈学良
androidaidl接口回调
AIDL与其他IDL语言类似,你需要做一些工作。它允许你定义客户端与服务端达成一致的程序接口使用进程间通信相互交流。在ANdroid上面,一个进程不能正常的访问另一个进程的内存。所以说,他们需要分解他们的对象为操作系统可以理解的基本单位,然后为你把这些对象按次序跨越进程边界书写这些代码是单调冗长的,所以android使用AIDL为你处理这个问题。注意:使用AIDL只有在你允许来自不同应用的客户端跨
- Native层调用Java层定义的AIDL接口
雨微轻裳
android
之前负责java层某service的开发找我说希望可以通过我这边(我们之间有HIDL接口)通知另一个Native进程状态。问过领导说是JAVA层定义的AIDL的接口C++层也可以用,不需要经过我这边通知。所以我这边也尝试一下。Android11,Java层作为服务端定义了AIDL接口,NativeC++层作为客户端。1.由于服务端只是在bp里面将aidl做为src参与编译,没有生成C++代码,所以
- Android AIDL过程分析
一个学渣的自我救赎
AndroidFrameworkandroid
AIDL代码分析现在我们通过一个AIDL的使用,分析一下整个通信过程中,各个角色到底做了什么,AIDL到底是如何完成通信的。首先定一个一个简单的aidl接口:ICompute.aidlpackagecom.example.test.app;interfaceICompute{intadd(inta,intb);}然后用编译工具编译之后,可以得到对应的ICompute.java类,看看系统给我们生成
- 数据结构与算法:排序算法
键盘魔术师小码哥
排序算法android算法
数据结构与算法:排序算法在Android开发中,排序算法是我们经常需要用到的基础算法。无论是对用户数据进行排序展示,还是在后台进行数据处理,掌握常见的排序算法及其性能特点都是非常必要的。本文将深入讲解常见排序算法的原理、实现以及在Android开发中的应用场景。一、常见排序算法概述排序算法可以根据时间复杂度分为O(n²)、O(nlogn)和O(n)三类。下面我们将介绍几种常见的排序算法。1.1时间
- android studio 页面布局
小白菜鸟999
androidstudioandroidide
哈哈哈,首先我也是初学androidstudio这个软件,在Android中首先要学会布局,①在布局中Design界面可以通过Palette中控件拖动到界面布局中②可通过在split界面编写代码对控件进行布局用代码进行布局时,可以采用很多布局方式,在这里我用的是线性布局,1.在线性布局中的设置界面整体布局方式要为线性布局就要运用标签。2.在属性中android:orientation指定线性布局方
- Android studio 动态布局
一一Null
Android开发androidstudioandroidjava
目录`RelativeLayout.LayoutParams`构造方法常用方法常用属性Java案例创建`RelativeLayout`视图修改`RelativeLayout`中的视图示例:将按钮从居中移动到父布局底部`LinearLayout.LayoutParams`构造方法常用方法常用属性Java案例创建`LinearLayout`视图修改`LinearLayout`中的视图示例:改变按钮的权
- Android activity默认横屏设置
安卓兼职framework应用工程师
Android高级进阶app默认横屏设置默认横屏
在androidapp开发中,有些需求要求app页面默认横屏状态,但是如果在AndroidManifest.xml中设置方向设置android:screenOrientation=“landscape”属性,会把方向设置成固定横屏方向,不能旋转达不到要求,但是在查看Launcher3的系统源码的时候发现可以做到默认横屏,可以自动旋转,@OverrideprotectedvoidonResume()
- C#语言实例源码系列-实现Linq操作Xml
芝麻粒儿
案例项目实战源码c#linqxmlunity开发语言
专栏分享点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册关于作者
- 虾分发平台深度解析与行业洞察
2401_88740657
postman
一、虾分发平台核心功能与服务全流程分发支持一键上传与生成:开发者上传APP后,平台自动生成下载链接和二维码(支持iOS/Android双端合并),简化内测分发流程。高速下载体验:依托全球CDN加速网络,确保用户极速获取安装包,降低延迟。数据统计与优化:提供下载量、浏览量实时监控,支持版本更新提示与用户反馈收集,助力开发者迭代优化。安全与合规保障数据加密与防盗刷:采用严格的数据传输加密,支持下载限额
- AndroidStudio编译报错 Duplicate class kotlin
大秦樗里疾
AndroidAndroidStudio编译kotlinandroid
具体的编译报错信息如下:Duplicateclasskotlin.collections.jdk8.CollectionsJDK8Ktfoundinmoduleskotlin-stdlib-1.8.10(org.jetbrains.kotlin:kotlin-stdlib:1.8.10)andkotlin-stdlib-jdk8-1.6.21(org.jetbrains.kotlin:kotlin
- Android studio开发-雷电模拟器-使用Terminal Emulator对主机后端服务端口检测
一一Null
Android开发androidstudio网络服务器
在雷电模拟器中安装终端模拟器(TerminalEmulator)后,可以通过以下命令对主机IP地址为192.168.2.138的端口5000进行检测:使用nc命令在雷电模拟器的终端模拟器中,输入以下命令:nc-zv192.168.2.1385000-z表示扫描监听的守护进程,不发送任何数据。-v表示详细输出。如果端口5000是开放的,会显示类似“Connectionto192.168.2.1385
- Android kotlin作用域函数
安卓兼职framework应用工程师
Android高级进阶androidkotlinapp作用域kotlin作用域函数
在kotlin中有很多新特性今天就简单介绍下Kotlin的作用域函数let,run,with,apply和also的用法及区别。1.上下文对象:thisoritthisrun、with以及apply通过关键字this引用上下文对象。itlet及also将上下文对象作为lambda表达式参数。如果没有指定参数名,对象可以用隐式默认名称it访问。it比this简短,带有it的表达式通常更容易阅读。返回
- android 程序框架--资源和资产
SZ laoluo
Androidandroid框架resourcesxmllayout
资源和资产ResourcesandAssets资源是Android应用程序不可或缺的部分。一般而言,资源是你想包含和引入到应用程序里面的一些外部元素,比如图片、音频、视频、文本字符串、布局、主题等。每个Android应用程序包含一个资源目录(res/)和资产目录(assets/),资产不经常被使用,因为它们的应用程序很少。你仅在需要读取原始字节流时才需要保存数据为资产。资源和资产目录均驻留在And
- Android基础入门、Android常见界面布局基础练习
洋240
Androidandroid练习
第1章Android基础入门、第2章Android常见界面布局一.填空题1.(填空题)如果希望在XML布局文件中调用颜色资源,可以使用_____调用。正确答案:(1)@color2.(填空题)Android程序入口的Activity是在_____文件中注册的。正确答案:(1)AndroidManifest.xml3.(填空题)Android中查看应用程序日志的工具是_____。正确答案:(1)Lo
- Android常见界面控件、程序活动单元Activity练习
洋240
Androidandroid练习
第3章Android常见界面控件、第4章程序活动单元Activity一.填空题1.(填空题)Activity的启动模式包括standard、singleTop、singleTask和_________。正确答案:(1)singleInstance2.(填空题)启动一个新的Activity并且获取这个Activity的返回数据,需要重写________方法。正确答案:(1)startActivity
- 移动端自动化工具概述
全智能时代
AutoJs经验分享
AutomateIt、Automate、按键精灵、AutoJS…等Android自动化工具有什么特点?这几款工具,都是自动化工具,大致可以分为两类,全自动化工具及半自动化脚本工具。各有千秋,建议根据自身需求选择合适的自动化工具。先来讲讲全自动化工具。Tasker可以说是全球用户量最多的自动化工具。操作可视化,无需任何基础。扩展性极强,支持调用插件、Shell以及部分Java操作函数,通过AppFa
- Android, IOS, 游戏开发者如何选择及赢利
WeiQ_
IOS
自从“愤怒的小鸟”成功之后,智能手机游戏平台上的热卖游戏中,总是有个人开发者和小团队的身影。从09年开始我就一直在关注移动平台,希望能找出个人开发者和小团队的成功规律。近来总是听闻个人开发者已死之类的言论,对此我有些不同的看法,下面是我这几年里总结出的一些个人观感,和大家分享一下。一操作系统市场调查机构IDC称:2012年二季度,Android和iOS正在联合挤压其他竞争系统,使它们处于从没有过的
- flutter使用binding_helper获取元素大小、位置
flutter前端
在上一篇文章中,我们了解了如何获取元素大小的原理。那么如何在程序中直接获取本元素的大小和位置呢?在android中,我们可以直接在元素渲染完成时获取元素大小,直接通过View.getWidth,View.getHeight方法,ios也类似,可以在渲染完成的时候获取到大小。那么在flutter中,我们获取大小也必须在元素渲染完成的时候才行,而有些应用场景要求在第一时间获取到这个元素的大小。那么怎么
- 学习 | Android无线调试
weixin_58951442
学习android
纯纯的一边开发一边学习,是小白是菜鸟,单纯的记录和学习,大神勿喷,理解有错望指正~简述Android无线调试是一种在不使用USB数据线的情况下,通过Wi-Fi连接Android设备和开发电脑进行调试的方法。这种方法可以解决USB线接触不稳定的问题,并且提供了更多灵活的调试方式。准备工作无线调试,顾名思义就是需要在同一个局域网的环境下进行;首先要做的就是把真机和电脑都连接了同一个wifi!!非常
- Android CosyVoice 大模型语音合成(可运行,已跑通,可直接复制粘贴的实用代码)
netkiller-BG7NYT
编程手札android
AndroidCosyVoice大模型语音合成流式文本语音合成(CosyVoice大模型)可运行,已跑通,可直接复制粘贴的实用代码。新一代生成式语音大模型,CosyVoice将文本理解和语音生成技术深度融合,能够精准解析并诠释各种文本内容,将其转化为如同真人发声般的自然语音,带来高度拟人化的自然语音合成体验。//代码出处https://www.netkiller.cnpackagecn.netki
- 【愚公系列】2023年10月 WPF控件专题 Polyline控件详解
愚公搬代码
wpf
作者简介,愚公搬代码《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人
- 2024 年 Flutter 官方路线图
2401_85793942
flutter
Nullsafety已经发布了beta版本,2021年将会迁移到稳定版本,此特性有效的避免了空指针异常,kotlin和swift中都包含此特性,如果以前接触过,基本没有学习成本。AndroidandiOS支持从商店增量下载资源和代码(受每个平台的限制),从而允许应用程序的初始下载比完整下载小得多,并可以按需获取数据。努力提高将Flutter嵌入Android和iOS上现有应用程序的性能和人体工程学
- Android Studio实机调试找不到荣耀手机(已解决)
CresCent_Charles
androidstudio智能手机android
首先排查:是否打开开发者模式操作步骤:开发人员选项-调试-无线调试开启AndroidStudio打开DeviceManager(找不到请双击Shift键搜索)Physical-PairUsingWiFi使用自己手机无线调试页面下的使用二维码配对设备扫描AS提供的二维码等待(笔者等待五分钟左右才连上,请确保连接同一个LAN)大三了,时间比较紧张,如果好心人使用此方法有效的话,欢迎转载并配图,谢谢你们
- android动态日志收集系统
浪花啦啦啦啦
android
创建Android动态日志收集系统在现代Android应用开发中,日志记录是一项重要的功能,可以极大地帮助我们调试和监控应用。本文将指导你如何实现一个简单的Android动态日志收集系统,我们将逐步通过表格展示流程,并详细讲解每一步的代码实现。流程概述以下是开发动态日志收集系统的主要步骤:步骤描述1设置Android项目2创建日志类3实现日志收集方式4日志的存储和读取5在应用中集成日志功能步骤详解
- 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独立出来,数据持