• jpa实现增删改查


    为了简化操作 我们自己去编写一个工具类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语句进行查询数据库

    测试更新操作:

    测试结果:控制台输出

    数据库中的数据结果:

    测试删除操作:

    控制台的输出

    数据库删除后的结果:

  • 相关阅读:
    Hibernate sqlserver 的对象转成 Hibernate mysql 的对象时 需注意
    将绿色版Tomcat服务添加到系统服务并设为开机运行
    进程上下文和中断上下文
    关于上、下拉电阻的总结整理
    I2C设备驱动流程
    MTK6573的LDO控制
    iomem—I/O映射方式的I/O端口和内存映射方式的I/O端口
    Linux I2C子系统分析I2C总线驱动
    Camera读取ID方法总结
    Linux 信号signal处理机制
  • 原文地址:https://www.cnblogs.com/phantom576/p/11965969.html
Copyright © 2020-2023  润新知