"); //-->
今天扣丁学堂小编给大家总结了关于Jpa本地方式实现数据的持久化的介绍,首先Jpa本身支持多种方式的对象持久化,比如数据库方式,还有一种方式就是本地文件的方式,本文来讲解以本地方式实现的数据持久化,具体的资源大家可以参阅一下odb官网。

在odb官网中,可以自行下载objectdb的jar包和其余资源,如果文档和源码。里面有关于jpa的具体实现方式,使用的工具为eclipse:
1、新增java项目,将刚刚下载好的objectdb.jar包放在classpath中
2、创建实体类,需要实现Serializable接口,其中分别给类添加Entity注解,给主键属性添加Id和GeneratedValue注解
@Entity
publicclassPointimplementsSerializable{
privatestaticfinallongserialVersionUID=1L;
@Id@GeneratedValue
privatelongid;
privateintx;
privateinty;
publicPoint(){
}
Point(intx,inty){
this.x=x;
this.y=y;
}
publicLonggetId(){
returnid;
}
publicintgetX(){
returnx;
}
publicintgetY(){
returny;
}
@Override
publicStringtoString(){
returnString.format("(%d,%d)",this.x,this.y);
}
}
3.新增java的测试类,并添加main方法,进行对象的crud操作
//Openadatabaseconnection
//(createanewdatabaseifitdoesn'texistyet):
EntityManagerFactoryemf=
Persistence.createEntityManagerFactory("$objectdb/db/points.odb");
EntityManagerem=emf.createEntityManager();
//Store1000Pointobjectsinthedatabase:
em.getTransaction().begin();
for(inti=0;i<1000;i++){
Pointp=newPoint(i,i);
em.persist(p);
}
em.getTransaction().commit();
//FindthenumberofPointobjectsinthedatabase:
Queryq1=em.createQuery("SELECTCOUNT(p)FROMPointp");
System.out.println("TotalPoints:"+q1.getSingleResult());
//FindtheaverageXvalue:
Queryq2=em.createQuery("SELECTAVG(p.x)FROMPointp");
System.out.println("AverageX:"+q2.getSingleResult());
//RetrieveallthePointobjectsfromthedatabase:
TypedQueryquery=
em.createQuery("SELECTpFROMPointp",Point.class);
Listresults=query.getResultList();
for(Pointp:results){
System.out.println(p);
}
//Closethedatabaseconnection:
em.close();
emf.close();
4.运行主方法完成测试
TotalPoints:1000
AverageX:499.5
(0,0)
(1,1)
(2,2)
(3,3)
:
:
(998,998)
(999,999)
5、objectdb解压后还有一个非常好用的可视化客户端工具,完成jpql的简单校验。
以上就是关于Jpa本地方式实现数据的持久化的详细介绍,最后想要学习JavaEE培训课程的小伙伴可以联系我们扣丁学堂的咨询老师,我们这里有配套的JavaEE视频教程课程,在你成为JAVA开发工程师的道路上助你一臂之力,或者直接加入扣丁学堂学习交流群:850353792。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
TechInsights 拆解:一径科技Zvision ML-30s 激光雷达
TechInsights 拆解:佳明 BMW i7 车载信息娱乐系统
TI内部电机控制 - 32位微控制器
44b0红外的问题(大家节日快乐)
实施电机系统 - 电机控制电子实验室第9章
一种基于FAS466的合成孔径雷达高速数据记录器的设计
开发工具 / 评估板演示 - 电机控制电子实验室第10章
一种基于IEEE802.15.4无线智能化传感器网络实现探讨
一种高性价比的plc与上位机的通信实现
TechInsights 拆解:Google TV Streamer 4K
半导体行业接近 400 Gb/s 光子学里程碑
好东东,快来看啊 ![原创]
一种基于混沌调制的语音保密通信系统
555可控硅快速测试器电路
FFT变换的作用是什么
555电缆对线器电路
555简易光控脉冲计数器电路
555可控硅脉冲消失检测电路
TechInsights 拆解:特斯拉 Model Y 媒体控制单元
抗干扰GNSS天线的进步
一种基于FFT的直扩通信系统中窄带干扰信号参数的估计方法
TI的电机控制工业自动化系统解决方案
初学者电源教程:第五部分——比较不同类型的电源
555光电子脉冲遗漏检测器电路
开始使用高电压电机控制入门 + PFC包
互联网的 7 个阶段
初学者电源教程:第四部分——开关电源的测试与使用
好东东,快来看啊![原创]
好东东,快来看啊![原创]
英伟达向太空发送强大的GPU