Hibernate EntityManager

Java Persistence API(JPA)是EJB3.0规范之一,定义了对数据库数据进行持久化操作的接口。HIbernate

使用HIbernate Annotation和Hibernate EntityManager实现JPA。

下载HIbernate EntityManager:

得到的jar包:

        hibernate-entitymanager.jar

   hibernate-archive-browing.jar

Product.java

 1 package com.b510.examples;
 2 
 3 import javax.persistence.Column;
 4 import javax.persistence.Entity;
 5 import javax.persistence.FetchType;
 6 import javax.persistence.GeneratedValue;
 7 import javax.persistence.Id;
 8 import javax.persistence.JoinColumn;
 9 import javax.persistence.ManyToOne;
10 import javax.persistence.Table;
11 import org.hibernate.annotations.GenericGenerator;
12 
13 @Entity
14 @Table(name = "product", catalog = "users")
15 public class Product implements java.io.Serializable {
16 
17     private static final long serialVersionUID = -1546206493725028472L;
18     private Integer id;
19     private Category category;
20     private String name;
21     private String price;
22     private String descripton;
23 
24     public Product() {
25     }
26 
27     public Product(Category category, String name, String price,
28             String descripton) {
29         this.category = category;
30         this.name = name;
31         this.price = price;
32         this.descripton = descripton;
33     }
34 
35     @GenericGenerator(name = "generator", strategy = "increment")
36     @Id
37     @GeneratedValue(generator = "generator")
38     @Column(name = "id", unique = true, nullable = false)
39     public Integer getId() {
40         return this.id;
41     }
42 
43     public void setId(Integer id) {
44         this.id = id;
45     }
46 
47     // 延迟加载:多对一方式
48     // 关联信息:外键name = "category_id"
49     @ManyToOne(fetch = FetchType.LAZY)
50     @JoinColumn(name = "category_id")
51     public Category getCategory() {
52         return this.category;
53     }
54 
55     public void setCategory(Category category) {
56         this.category = category;
57     }
58 
59     @Column(name = "name", length = 500)
60     public String getName() {
61         return this.name;
62     }
63 
64     public void setName(String name) {
65         this.name = name;
66     }
67 
68     @Column(name = "price", length = 10)
69     public String getPrice() {
70         return this.price;
71     }
72 
73     public void setPrice(String price) {
74         this.price = price;
75     }
76 
77     @Column(name = "descripton", length = 500)
78     public String getDescripton() {
79         return this.descripton;
80     }
81 
82     public void setDescripton(String descripton) {
83         this.descripton = descripton;
84     }
85 
86 }

src/META-INF/persistence.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <persistence version="1.0"
 3     xmlns:persistence="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.23.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd ">
 5 
 6     <persistence-unit name="entityManager">
 7         <provider>org.hibernate.ejb.HibernatePersisttence
 8         </provider>
 9         <properties>
10             <property name="hibernate.archive.autodetection" value="class, hbm" />
11             <property name="hibernate.show_sql" value="true" />
12             <property name="hibernate.formate_sql" value="true" />
13             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
14             <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
15             <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3307/users" />
16             <property name="hibernate.connection.username" value="root" />
17             <property name="hibernate.connection.password" value="root" />
18         </properties>
19     </persistence-unit>
20 </persistence>
21 
22 
23  

测试代码:

HibernateTestEntityManager.java

 1 /**
 2  * 
 3  */
 4 package com.b510.examples;
 5 
 6 import javax.persistence.EntityManager;
 7 import javax.persistence.EntityManagerFactory;
 8 import javax.persistence.EntityTransaction;
 9 import javax.persistence.Persistence;
10 
11 /**
12  * 
13  * @author XHW
14  * 
15  * @date 2011-7-20
16  * 
17  */
18 public class HibernateTestEntityManager {
19 
20     /**
21      * @param args
22      */
23     public static void main(String[] args) {
24         new HibernateTestEntityManager().add();
25     }
26 
27     public void add() {
28         EntityManagerFactory emf = Persistence
29                 .createEntityManagerFactory("entityManager");
30         EntityManager em = emf.createEntityManager();
31         Product p = new Product();
32 
33         p.setName("Hibernate EntityManager");
34         p.setPrice("12");
35         p.setDescripton("Hibernate EntityManager test");
36 
37         EntityTransaction tx = em.getTransaction();
38         tx.begin();
39         // 保存p对象
40         em.persist(p);
41         tx.commit();
42     }
43 
44 }

 

posted @ 2011-07-20 18:13  Hongten  阅读(8761)  评论(0编辑  收藏  举报
Fork me on GitHub