jpql实现增删改查案例(希望对你有帮助)

Person类:

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

@Entity
public class Person {

 private Date birthday;
 private Gender gender;
 private int id;
 private String password;
 private String username;
 private String descript;
 private Byte[] file;

 private String imagepath;

 @Transient
 public String getImagepath() {
  return imagepath;
 }

 public void setImagepath(String imagepath) {
  this.imagepath = imagepath;
 }

 @Lob
 public Byte[] getFile() {
  return file;
 }

 public void setFile(Byte[] file) {
  this.file = file;
 }

 @Lob
 public String getDescript() {
  return descript;
 }

 public void setDescript(String descript) {
  this.descript = descript;
 }

 @Temporal(TemporalType.DATE)
 @Column(nullable = false)
 public Date getBirthday() {
  return birthday;
 }

 @Enumerated(EnumType.STRING)
 @Column(length = 5, nullable = false)
 public Gender getGender() {
  return gender;
 }

 @Id
 @GeneratedValue
 public int getId() {
  return id;
 }

 @Column(length = 10, nullable = false)
 public String getPassword() {
  return password;
 }

 @Column(length = 10, nullable = false)
 public String getUsername() {
  return username;
 }

 public void setBirthday(Date birthday) {
  this.birthday = birthday;
 }

 public void setGender(Gender gender) {
  this.gender = gender;
 }

 public void setId(int id) {
  this.id = id;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public void setUsername(String username) {
  this.username = username;
 }

}


persistence.xml:


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
 version="1.0">

 <persistence-unit name="crud" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <properties>
   <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
   <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/demo" />
   <property name="hibernate.connection.username" value="root" />
   <property name="hibernate.connection.password" value="admin" />
   <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
   <property name="hibernate.max_fetch_depth" value="1" />
   <property name="hibernate.hbm2ddl.auto" value="update" />
   <property name="hibernate.jdbc.fetch_size" value="5" />
   <property name="hibernate.jdbc.batch_size" value="3" />
   <property name="hibernate.show_sql" value="true" />
   <property name="hibernate.format_sql" value="true" />
  </properties>
 </persistence-unit>

</persistence>

 

PersonTest:

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.junit.BeforeClass;
import org.junit.Test;

public class PersonTest {

 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
 }

 @Test
 public void delete() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Person person = em.find(Person.class, 1);
  em.remove(person);
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void getPerson() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();//
  Person person = em.find(Person.class, 1);
  System.out.println(person.getUsername());
  em.close();
  factory.close();
 }

 @Test
 public void getPerson2() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  Person person = em.getReference(Person.class, 1);//
  System.out.println(person.getUsername());
  em.close();
  factory.close();
 }

 @Test
 public void save() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Person person = new Person();
  person.setUsername("admin");
  person.setPassword("admin");
  person.setBirthday(new Date());
  person.setGender(Gender.MAN);
  em.persist(person);
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void update() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Person person = new Person();
  person.setUsername("admin11");
  person.setPassword("admin11");
  person.setBirthday(new Date());
  person.setGender(Gender.WOMAN);
  person.setId(1);
  em.merge(person);
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void update2() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Person person = em.find(Person.class, 2);
  person.setUsername("admin11a");
  person.setPassword("admin11a");
  person.setBirthday(new Date());
  person.setGender(Gender.WOMAN);
  em.merge(person);
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void update3() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Person person = em.find(Person.class, 2);
  person.setUsername("admin11ab");
  person.setPassword("admin11ab");
  person.setBirthday(new Date());
  person.setGender(Gender.WOMAN);
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void query() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  // 命名查询
  Query query = em.createQuery("select o from Person o where o.id=:id");
  query.setParameter("id", 2);
  // 位置查询
  // Query query = em.createQuery("select o from Person o where o.id=?1");
  // query.setParameter(1, 2);
  Person person = (Person) query.getSingleResult();
  System.out.println(person.getUsername());
  em.close();
  factory.close();
 }

 @Test
 public void query2() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  Query query = em.createQuery("select o from Person o where o.id=:id");
  query.setParameter("id", 2);
  List<Person> person = query.getResultList();
  for (Person person2 : person)

   System.out.println(person2.getUsername());
  em.close();
  factory.close();
 }

 @Test
 public void deletequery() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Query query = em.createQuery("delete from Person o where o.id=?1");
  query.setParameter(1, 2);
  query.executeUpdate();
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

 @Test
 public void updatequery() {
  EntityManagerFactory factory = Persistence
    .createEntityManagerFactory("crud");
  EntityManager em = factory.createEntityManager();
  em.getTransaction().begin();
  Query query = em
    .createQuery("update Person o set o.username =:username where o.id=:id");
  query.setParameter("username", "xiaohua");
  query.setParameter("id", 3);
  query.executeUpdate();
  em.getTransaction().commit();
  em.close();
  factory.close();
 }

}

 

注明:persistence.xml必须放在META-INF目录下。

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值