Hibernate EntityManager
小编:管理员 503阅读 2022.09.14
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 2复制5 6 21 22 237 20org.hibernate.ejb.HibernatePersisttence 8 910 1911 12 13 14 15 16 17 18
测试代码:
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 }复制
相关推荐
- 经典笔试题-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 题:基础10 道,中等难度2 道)110、数据库,比如100 用户同时来访,要采取什么技术解决?【基础】 答:可采用连接池。111、什么是ORM?【基础】 答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…