Atitit Persistence API持久性标准化法总结 目录 1. 持久性对于大多数企业应用程序都非常要害 1 2. 持久化api内容 2 2.1. 一种声明式地执行O-R映射的方式。 2
Atitit Persistence API持久性标准化法总结
目录
1. 持久性对于大多数企业应用程序都非常要害 1
2. 持久化api内容 2
2.1. 一种声明式地执行O-R映射的方式。 2
2.2. 一个用于操作实体(例如,执行CRUD操作)的API。 2
2.3. 一种用于检索对象的查询语言。这是持久性最重要的方面, 2
3. Java Persistence API (JPA) 3
3.1. Java Caching(缓存)-策略和JCache API - CSDN博客.html.txt 3
3.2. 文件持久化apiAtitit 文件存储标准化api 总结 目录 5
- 持久性对于大多数企业应用程序都非常要害
,因为它们需要访问关系数据库(例如Oracle Database 10g)。假如您正在使用java开发应用程序,您可能需要完成一些常规任务(例如数据库更新和检索),这是通过编写JDBC和SQL来完成的。最近几年,几种对象关系(O-R)映射框架(例如Oracle TopLink、JBoss Hibernate和BEA Kodo)开始流行,因为它们简化了持久性问题,将Java开发人员从编写JDBC代码的工作中解放出来,从而使他们能够将精力集中于业务逻辑
- 持久化api内容
假如使用过O-R映射框架(例如Oracle TopLink)构建应用程序持久层,您就会注重到,每种框架都提供三种工具:
- 一种声明式地执行O-R映射的方式。
这种方法(称为O-R映射元数据)答应将对象映射到一个或多个数据库表。通常,大多数O-R框架使用xml存储O-R映射元数据。
- 一个用于操作实体(例如,执行CRUD操作)的API。
此API答应持久化、检索、更新或移除对象。基于API和O-R映射元数据的使用,O-R框架代表开发人员执行数据库操作。此API将开发人员从编写JDBC或SQL代码以持久化域对象的工作中解放出来。
- 一种用于检索对象的查询语言。这是持久性最重要的方面,
因为非法的SQL语句可能会降低数据库的速度。此方法也对应用程序屏蔽了混乱地遍布应用程序的的专有SQL。查询语言答应检索实体或对象,并将开发人员从编写SQL SELECT语句的工作中解放出来。
- Java Persistence API (JPA)
提供一种标准O-R映射机制、一个执行CRUD操作的EntityManager API以及一种扩展EJB-QL以检索实体的方式,从而标准化了面向Java平台的持久性的使用。我将在后面讨论这三个方面。
- Java Caching(缓存)-策略和JCache API - CSDN博客.html.txt
JCache API 从设计的角度看,基本组成部分有一个CacheManager,用来持有、控制缓存集合。缓存里存放键值对条目。
整个规范包括了如下内容:
- 支持原子操作的缓存读写
- 缓存事件监听器
- 统计
- 事务
- 注解
Cache技术在Java的生态环境中太太太常见了。常见的缓存技术如Ehcache, Hazelcast, Infinispan, GridGain, Apache Ignite, JCS…等等,以上技术在很多的系统优化解决方案中我们都见到过。最最简单的缓存技术就是将数据缓存在内存区块中,附加一些规则(如先进先出等)。而先进的缓存则可以是分布式的,跨越多台JVM、磁盘,用来操作大数据(当今流行话题之一)。
大多数缓存的解决方案是将数据存储在类似map的结构中(key-value),正因为如此,JCache API规范的标准也是基于map(类似)的结构。如果你需要高级点的用法,那到可以自己实现一些高级特征,例如JPA,但是这个规范的主要目的是希望数据在各个缓存技术之间更好的交互,以及应该在Cache方面需要升级转换到另一个技术时更加的容易,终级目的是减少开发人员的代码量。
3. 官网API研究
http://ignite.apache.org/jcache/1.0.0/javadoc/javax/cache/package-summary.html
3.1 JCache提供了五个核心接口:
- CachingProvider: 定义了创建、配置、获取以及控制一个或多个CacheManager的方法。程序在运行过程中可以使用一个或多个CacheProvider。
- CacheManager: 定义了创建、配置、获取以及控制一个或多个Cache。一个CacheManager从属于一个CachingProvider。
- Cache<K, V>: 类似Map的数据结构,用来暂存数据。一个Cache从属于一个CacheManager。
- Entry<K, V>: key-value结构的单一元素,存储在Cache里。
- ExpiryPolicy: 一个存储在Cache中的Entry,都有存储的规则,像:会不会过期?怎么过期?这些规则统称为ExpirePolicy。
3.2 存储方式有两种:
- 按value存(默认):当一个对象要被存到Cache里时,会拷贝后再放到Cache,读取Cache时返回的也是拷贝后的值。
- 按Reference存:当一个对象要被存放到Cache里时,就直接按key存放了相应的值,并不会进行拷贝。这样的后果是当程序里的值改变后,相应存放在Cache里的值也会改变(不需要调用cache.put())。
3.3 一致性(Consistency)
Cache一致性是指当多个进程同时访问或操作同一个Cache时应该有的规则。所有的实现类都应该遵循JCache的默认规则(如下):
即Cache在操作时考虑在key上加锁。即读取Cache时,这时候就需要写一个lock方法锁住该key,在这个时候其它所有的操作都会被阻塞直到该锁被释放。加锁行为应该是在读操作的之前,或是在值会发生变化之前,包括在不同的JVM之间的操作。
对某些Cache的操作来说,从Cache返回的值是“最后”的那个值。这个最后的值可能是一个“老的”数据,也可能是“新的”数据,尤其是在当一个元素同时被更新时,实现类需要考虑哪个值需要被返回。
不同于以上的,其它的操作遵循的规则可能是当且仅当元素当前的状态刚好是希望的状态时,Cache值才会发生变化。在这种情况下多个线程同时操作(或更新)该Cache也是没有影响的,比如共享同一个锁。
4. Cache<K, V>与Map区别
虽说Cache的存储数据结构与Map类似(更精确的说,应该是JCache里的Cache对象像java.util.ConncurentHashMap.),操作的API也很相似(get, put, remove等),但不同点也显而易见。
a. Cache不允许null的key或value,遇到该case时会报NPE。(从业务角度来来说,存空的键或值没有意义。对于map来说要看其具体的实现类,比如HashMap就允许空的键和值,Hashtable不允许空的键和值。)
b. Cache里的值可能会过期或收回。
c. 为了支持compare-and-swap(一种无锁算法),即比较元素的值是否发生变化,若值是一个自定义的类,那么在Cache里要重写方法Object#equals。(这是推荐的做法,并不是必须)。
d. 在Cache里,key和value在某些情况下需要实现序列化(可以进行二进制存储、传输到Cache server等)。
e. 在Cache里可能会被定义有多少的key或value可以被存储下来。
f. Cache提供安全方法的接口。
总的来说,Cache和Map是两个完全不同的东西。没啥可比性,运用场景也差很多。只能说In memery的Cache,有点类似存储在JVM里的本地Map。然后Cache的功能远不止这些,如今的发展已经是跨JVM了,形式也不仅仅是存储在内存中。
我们可能对JSR-107F规范并不熟悉,但相信很多开发者都用过Cache技术,比如Ehcache, Hazelcast等等。JCache的主要作用就是定义及规范了SPI,比如过期规则、元素失效规则(LRU, FIFO等),对开发者而言正是因为这些SPI的出现,使得我们在选择具体的Cache技术时可以更好的进行切换以及降低了学习成本。存在即合理,多数Cache技术都已经支持并实现了JCache,是个好东西。
- 文件持久化apiAtitit 文件存储标准化api 总结 目录
Atitit title 头衔 头街 称号 v22
作者简介
艾提拉 艾龙 attilax,法名 st attilax akbar rinpoche 圣阿提拉科斯阿克巴仁波切
头街软件技术大师 uke组织创始人
学术成就,完善的20大知识体系,拥有uke学院硕士博士学位
从事软件互联网行业技术背景十二年,csdn排名TOP57
长年从事软件互联网技术与管理,预计出版多本心得分享书籍
擅长技术与管理与文化 致力于标准化事业
Qq 1466519819 小号112237553
微信attilax 小号attilax201708
作者:: 绰号与头街 :老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher 神的使者(Messenger of God)及守望者(Watch Man
捕鸟王"Bird Catcher kok 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak KOA万兽之王 纵火者
头街来源:神的使者(Messenger of God)及守望者(Watch Man来源于圣经
老哇的爪子claw of Eagle来源于印加帝国
KOA万兽之王 来源于婆罗门大神森林中修炼
简称:: st Emir Attilax Akbar 圣 埃米尔 阿提拉克斯 阿克巴
全名::st Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 圣 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:
uke |
Emir Uke部落首席大酋长,ati协会创始人 仁波切马斯塔 埃米尔 uke总部o2o负责人,全球网格化项目创始人, 圣阿提拉克斯国王 |
科技领域 |
UTSC uke技术标准化委员会委员长 uke 首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长 uke软件培训大师 Ati组织科研研究院创始人 |
文艺领域 |
, ,, uke机车协会主任 uke纹身协会 uke交友协会会长 uke捕猎协会会长 Ati文艺协会会长 ati文学协会 |
行政领域 |
Gchsp总裁 gchsp常委 GsP创始人 |
媒体传播领域 |
uke出版社编辑总编 宣传布道总策划 Ati传媒总部 |
渔猎军事领域 |
uke保安部首席大队长 Uke 户外运动协会理事长 度假村首席大村长 Ati打猎协会 |
法学 |
法学研究会 制度研究会 |
管理领域 |
工商管理学 公共管理与社会服务 ,uke制度检查委员会副会长 |
教育领域 |
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任 Uke图像处理与机器视觉学院首席院长 uke终身教育学校副校长 靓号研究院 |
经济领域 |
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人 Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长 直达巴士西北区负责人 直达巴士长沙与西安分部部长 润昌通讯软件事业部总裁 执行长 分部负责人 执行委员会主席 Ati经济研究所 |
历史领域 |
历史事业部 ati历史研究院 |
社会科学领域 |
社科学院 ati文化部 |
自然科学领域 |
Uke研究院院长兼首席研究员 科学家 Ati自然科学研究院 |
宗教神学领域 |
uke宗教与文化融合事务部部长 大师master uke制度与重大会议委员会委员长 ati宗教事务所 |
医学领域 |
Uke医院 与医学院方面的创始人 |
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
http://www.cnblogs.com/attilax/
Microblog
http://weibo.com/u/5941179815 (common attilax)
https://weibo.com/p/1005055941179815 (attilax201707,bek weibo)
http://weibo.com/u/5487832265 (tech,for blog auto gene)
知乎空间
https://www.zhihu.com/people/ati-att/activities
Qq 1466519819 小号112237553
微信attilax 小号attilax201708
微博 attilax2016 小号attilax201707
--Atiend v22
修改历史记录
V22增加艾提拉 和头街马斯塔
V21 增加神的使者头街 守望者
在旧约中,“神人”(Man of God),神的使者(Messenger of God)及守望者(Watch Man),也是指先知。他们是负有上帝特殊使命的人,同时又是关心世人灵性问题的人
V20 增加了7行的作者简介
V18增加了GsP 头街 v19增加了圣字头街与 圣阿提拉克斯王国国王头街
V17 增加了ati组织的头街
V16 结构化表格化头街 ,并且 头街增加一些。充实了空虚。
V15 增加了知乎空间 微博大小号
V14 增加小号,以及通讯公司与直达巴士分部
V12 增加机构utsc
V10 增加了microblog
万兽之王本来这个是湿婆的。。
V7 增加了研究院title
V8 去了奶牛科技的东东
V9 融和俩个v8版本。。
增加了cnblogs的url
Atitit Persistence API持久性标准化法总结 目录 1. 持久性对于大多数企业应用程序都非常要害 1 2. 持久化api内容 2 2.1. 一种声明式地执行O-R映射的方式。 2相关推荐
- 8.Spring整合Hibernate_2_声明式的事务管理(Annotation的方式)
声明式的事务管理(AOP的主要用途之一) (Annotation的方式) 1.加入annotation.xsd 2.加入txManager bean 3.<tx:annotation-drive ...
- 声明式事务(注解与纯注解方式)
1.声明式事务(注解) 1.1.@Transactional 名称:@Transactional 类型:方法注解,类注解,接口注解 位置:方法定义上方,类定义上方,接口定义上方 作用:设置当前类/接口 ...
- 4.Hibernate O/R 映射
O/R 映射 目前为止我们已经通过应用 Hibernate 见识过十分基础的 O/R 映射了,但是还有三个更加重要的有关映射的话题需要我们更详细的探讨.这三个话题是集合的映射,实体类之间的关联映射以及 ...
- 【数据库系统】O/R映射
O/R映射 O/R映射,即对象-关系映射,指从UML类模型映射到RDB模式的设计,这一映射必须要考虑到关系模型的限制,难点在于要将类图的描述性语义转换为逻辑模式设计中的过程性解决方案(类的某些内部描述 ...
- 微软获得O/R映射技术专利 业界担忧阻碍技术进展
一组微软员工申报了O/R映射技术的专利. 该专利将对业界现有的O/R映射产品造成怎样的影响目前尚不清楚,但有业界专家担忧微软将借此专利打压竞争对手. 这份专利档案是被网友无意间在专利信息查询网站Fre ...
- 怎么把arraylist集合的值放在实体类的属性了_原创 | 使用JPA实现DDD持久化-O/R映射元数据:类级映射-实体和值对象...
类级映射:实体和值对象 可以被持久化的类包括实体和值对象两大类. 一.实体映射 通过给一个类添加@Entity逻辑注解,告知JPA这是一个可以持久化的实体类. 请注意@Entity逻辑注解不可以继承. ...
- ppt_第七章_类人DNA与神经元基于催化算子映射编码方式.
第七章_类人DNA与神经元基于催化算子映射编码方式. AOPM-VECS-IDUQ 十二元基建模与应用, 文件肽化方式. 1 DETA humanoid cognition 1.1DETA human ...
- 云中的安全api使用云端点espv2 beta运行云功能和应用程序引擎
介绍 (Introduction) Just as organisations need services management for microservices, they need API ma ...
- 使用EJB3 Java 持久化API来标准化Java的持久化操作
本文转载自[url]http://blog.csdn.net/dl88250/archive/2007/11/01/1860462.aspx[/url] 持久化对于大部分企业应用来说都是至关重要的,因 ...
- itextpdf api帮助文档_我开源了一个小工具,可以帮你轻松生成 SpringBoot API 文档...
前言 大家好,我叫叶大侠,一名独立开发者.这个文档工具是我17年的一个想法,当时还是在公司里面上班,负责App客户端的开发工作,当时后端童鞋写文档的意愿比较低,总是要等他们开发完接口,然后才在微信上沟 ...
最新文章
- 美国劳工统计局使用机器学习自动执行数据编码
- Android--制作开场动画/MediaPlayer OnCompletionListener
- 枚举法 POJ1411
- 如何打开设计思路,避免不断改稿?只需提前做好这一步
- 单点登录实现(spring session+redis完成session共享)
- linux账号安全小汇
- 使用 SAP UI5 系统测试工具 UIVeri5 的一个具体例子
- SAP Spartacus加载delivery region的实现
- Java EE 8 MVC:使用路径参数
- C++11实现自旋锁
- LintCode MySQL 1968. 查询首两个字母在 ‘Db‘ 和 ‘Dy‘ 之间的课程名称(REGEXP正则)
- php sql取数据生成数组中,php中实现数组生成要执行的sql语句
- 波特率与频率的换算公式?_高中物理公式总结表
- Flink批处理练习
- python 30个小代码_30个Python常用极简代码,拿走就用
- python中print说法正确的是_python中的print()输出
- matlab 均匀设计编程,均匀设计均匀设计表--方开泰.doc
- 串口通信工具android,串口调试工具手机版
- scala中val function
- 计算机小键盘上灯亮怎么去掉,怎么设置电脑开机自动启动小键盘灯NumberLock?
热门文章
- 计算机怎么给课程表涂颜色,Excel做自动统计课时数的彩色课程表
- java集合框架的选用 若是数据量很大,0421测试题
- matlab simulink 过程控制,[转载]MATLAB/Simulink与过程控制系统
- layui根据name获取对象_python面向对象——学校学生教职工管理系统类的实例
- 如何设置app字体跟随系统_Android中App字体大小不随系统改变而改变
- OPC Server与YFIOServer成功绑定
- 关于wordpress主题只显示一个的解决办法
- Swift中可能失败的构造器的传播(调用)和重写
- Java EE7和Maven工程入门(1)
- iOS开发UI篇—无限轮播(循环展示)