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目录下。