JPA之使用JPQL语句操作数据库

本文介绍了使用Java Persistence API (JPA) 在PersonTest类中实现的增删改查操作。通过具体的例子展示了如何创建EntityManager实例,执行查询、更新、删除等操作,并处理结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在PersonTest.java类中添加如下代码进行测试:

	@Test
	public void query(){
		EntityManagerFactory factory 
			= Persistence.createEntityManagerFactory("sunft_first");
		EntityManager em = factory.createEntityManager();
       //参数占位符是固定写法
		Query query = em.createQuery("select o from Person o where o.id = ?1");
		query.setParameter(1, 12);
		//如果查找不到则会抛出异常
		//Person person = (Person) query.getSingleResult();
		//System.out.println(person.getName());
		List<Person> persons = query.getResultList();
		for(Person person : persons){
			System.out.println(person.getName());
		}
		em.close();
		factory.close();
	}
	
	@Test
	public void deletequery(){
		EntityManagerFactory factory 
			= Persistence.createEntityManagerFactory("sunft_first");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();//开始事务
		//参数占位符是固定写法
		Query query = em.createQuery("delete from Person o where o.id = ?1");
		query.setParameter(1, 12);
		//如果数据库中不存在该记录,也不会报错
		query.executeUpdate();
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
	
	@Test
	public void queryupdate(){
		EntityManagerFactory factory 
			= Persistence.createEntityManagerFactory("sunft_first");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();//开始事务
		//参数占位符是固定写法
		Query query = em.createQuery("update Person o set o.name = :name where o.id = :id");
		query.setParameter("name", "XXX");
		query.setParameter("id", 14);
		//如果数据库中不存在该记录,也不会报错
		query.executeUpdate();
		em.getTransaction().commit();
		em.close();
		factory.close();
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值