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

 

  1. 持久性对于大多数企业应用程序都非常要害

,因为它们需要访问关系数据库(例如Oracle Database 10g)。假如您正在使用java开发应用程序,您可能需要完成一些常规任务(例如数据库更新和检索),这是通过编写JDBC和SQL来完成的。最近几年,几种对象关系(O-R)映射框架(例如Oracle TopLink、JBoss Hibernate和BEA Kodo)开始流行,因为它们简化了持久性问题,将Java开发人员从编写JDBC代码的工作中解放出来,从而使他们能够将精力集中于业务逻辑

 

  1. 持久化api内容

假如使用过O-R映射框架(例如Oracle TopLink)构建应用程序持久层,您就会注重到,每种框架都提供三种工具:

    1. 一种声明式地执行O-R映射的方式。

这种方法(称为O-R映射元数据)答应将对象映射到一个或多个数据库表。通常,大多数O-R框架使用xml存储O-R映射元数据。

    1. 一个用于操作实体(例如,执行CRUD操作)的API。

此API答应持久化、检索、更新或移除对象。基于API和O-R映射元数据的使用,O-R框架代表开发人员执行数据库操作。此API将开发人员从编写JDBC或SQL代码以持久化域对象的工作中解放出来。

    1. 一种用于检索对象的查询语言。这是持久性最重要的方面,

因为非法的SQL语句可能会降低数据库的速度。此方法也对应用程序屏蔽了混乱地遍布应用程序的的专有SQL。查询语言答应检索实体或对象,并将开发人员从编写SQL SELECT语句的工作中解放出来。

  1. Java Persistence API (JPA)

提供一种标准O-R映射机制、一个执行CRUD操作的EntityManager API以及一种扩展EJB-QL以检索实体的方式,从而标准化了面向Java平台的持久性的使用。我将在后面讨论这三个方面。

 

    1. 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,是个好东西。 

    1. 文件持久化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:[email protected]

 

 

头衔:

 

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

 

猜你喜欢

转载自blog.csdn.net/attilax/article/details/83473781
今日推荐