首页 > 其他 > 详细

jpa实现增删改查

时间:2019-12-01 16:44:34      阅读:86      评论:0      收藏:0      [点我收藏+]

为了简化操作 我们自己去编写一个工具类JpaUtils
public class JpaUtils {
private static EntityManagerFactory factory;
static {
factory = Persistence.createEntityManagerFactory("myJpa");
}
public static EntityManager getEntityManager(){
return factory.createEntityManager();
}
}
解释一下:在第一次调用getEntityManager方法的时候 会加载静态代码块里面的内容创建实体管理工厂 然后再调用方法通过工厂获取EntityManager这个实体管理类
在以后的调用种直接通过工厂进行获取
案例一:查询
直接书写测试类进行测试:
技术分享图片
测试结果:
技术分享图片
注意这里有一点需要注意:就是前面的配置文件中有一处要进行修改:

create要修改成update 不然的话 数据库中存在表就会被删除 就会报错
还有另外一种查询方式:
技术分享图片
测试结果:
技术分享图片
那两种方式有什么区别??
我们打上断点进行测试:第一种方法testFind
技术分享图片
点击下一步:快捷键f8
技术分享图片
出现了sql语句(立即加载模式)
技术分享图片
对象就是实体类本身
测试第二种方法testReference() 打上断点:
技术分享图片
技术分享图片
这种方法获取的是代理对象
find()方法查询 查询的是当前对象本身 在调用find()方法的时候 就会发送sql语句查询数据库
getReference()方法 获取的对象是一个动态代理对象 调用getReference方法不会立即发送sql语句查询数据库 当调用查询结果对象的时候 才会发送sql语句 什么时候用 什么时候发送sql语句进行查询数据库

测试更新操作:
技术分享图片
测试结果:控制台输出
技术分享图片
数据库中的数据结果:
技术分享图片

测试删除操作:
技术分享图片
控制台的输出
技术分享图片
数据库删除后的结果:
技术分享图片

jpa实现增删改查

原文:https://www.cnblogs.com/phantom576/p/11965969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!