hql实例 jpa_JPA之hibernate例子+总结

packagecom.youcent;importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.Persistence;importjavax.persistence.Query;importorg.junit.Test;public classTestUser {//添加

@Testpublic voidtestSave() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

em.getTransaction().begin();

User u= newUser();

u.setName("jerry");

em.persist(u);

em.getTransaction().commit();

em.close();

factory.close();

}//删除

@Testpublic voidtestRemove() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

em.getTransaction().begin();

User u= em.find(User.class,2);

em.remove(u);

em.getTransaction().commit();

em.close();

factory.close();

}//修改

@Testpublic voidupdate() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

em.getTransaction().begin();//第一种方法//User u = em.find(User.class,1);//u.setName("tom");//第二种方法

User u1 = newUser();

u1.setId(3);

u1.setName("xyz");

em.merge(u1);

em.getTransaction().commit();

em.close();

factory.close();

}//hql 取得所有对象

@Testpublic voidfindAll() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

Query query= em.createQuery("select u from User u");

List list =query.getResultList();for(User u : list){

System.out.println(u.toString());

}

em.close();

factory.close();

}//hql 取得单一结果 ,使用位"置参数查询"

@Testpublic voidfindById() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

Query query= em.createQuery("select u from User u where u.id=?1"); //表示明确指定从1开始设置参数

query.setParameter(1, 4);

User u= (User) query.getSingleResult(); //取得单一结果

System.out.println(u.toString());

em.close();

factory.close();

}//hql 取得单一结果 ,同样任何查询可以使用"命名参数"查询

@Testpublic voidfindByHql() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

Query query= em.createQuery("select u from User u where u.id=:id"); //表示明确指定从1开始设置参数

query.setParameter("id", 4);

User u= (User) query.getSingleResult(); //取得单一结果

System.out.println(u.toString());

em.close();

factory.close();

}//hql分页查询

@Testpublic voidfindByPage() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

Query query= em.createQuery("select u from User u");

query.setFirstResult(1); //表示从第二条记录开始

query.setMaxResults(2); //向后去两条

List list =query.getResultList();for(User u : list){

System.out.println(u.toString());

}

em.close();

factory.close();

}//hql更新查询,须开事务

@Testpublic voidupdateByhql() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

em.getTransaction().begin();

Query query= em.createQuery("update User u set u.name=:name where u.id=:id");

query.setParameter("name", "tom1");

query.setParameter("id", 1);int rows = query.executeUpdate(); //更新查询要执行的方法

if(rows>0){

System.out.println("更新成功!");

}

em.getTransaction().commit();

em.close();

factory.close();

}//hql删除查询,须开事务

@Testpublic voidremoveByhql() {

EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");

EntityManager em=factory.createEntityManager();

em.getTransaction().begin();

Query query= em.createQuery("delete from User u where u.id=:id");

query.setParameter("id", 4);int rows = query.executeUpdate(); //更新查询要执行的方法

if(rows>0){

System.out.println("删除成功!");

}

em.getTransaction().commit();

em.close();

factory.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值