仅提供测试对应的case代码,至于实体对象的annotation注解可以自行搜索。
@Test public void simple(){
//创建sessionFactory
EntityManagerFactory factory = Persistence.createEntityManagerFactory("配置中对应的名称");
//创建实体管理对象
EntityManager em = factory.createEntityManager();
//开启事务
em.getTransaction().begin();
//保存数据
em.persist("实体对象");
//更新数据
em.merge("实体对象");
//删除数据
em.remove("实体对象");
//查找数据
//方法一
Person person1 = (Person)em.find(Person.class, new Person().getId());
//方法二:返回的是代理对象,也就说实现了延迟加载
Person person2 = (Person)em.getReference(Person.class, new Person().getId());
//提交事务
em.getTransaction().commit();
//关闭事务
em.close();
//关闭sessionFactory
factory.close();
}
@Test public void update(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class, 1);
//将实体状态变为游离状态
em.clear();
person.setName("");
//将游离状态变为托管状态
em.merge(person);
em.getTransaction().commit();
em.close();
factory.close();
}
@Test public void query(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("");
EntityManager em = factory.createEntityManager();
//索引参数查询
Query query = em.createQuery("select p from Person p where p.name=?1");
query.setParameter(1, "yoyi");
//位置参数查询
Query query1 = em.createQuery("select p from Person p where p.name:name");
query1.setParameter("name", "yoyi");
List<Person> ls = query.getResultList();
Person person = (Person)query.getSingleResult();
}