今天扣丁学堂小编给大家总结了关于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。