Hibernate EntityManager
小編:管理員 375閱讀 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 <?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 }復制
相關推薦
- 經典筆試題-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 題:基礎10 道,中等難度2 道)110、數據庫,比如100 用戶同時來訪,要采取什么技術解決?【基礎】 答:可采用連接池。111、什么是ORM?【基礎】 答:對象關系映射(Object—Relational Mapping,簡稱ORM)是一種為了解決面向對象…
- Hibernate Criterion 在查詢方法設計上能夠靈活的依據Criteria的特點來方便地進行查詢條件的組裝.Hibernate設計了CriteriaSpecification作為Criteria的父接口,以下提供了Criteria和DetachedCriteria.Criteria和DetachedCriteria的主要差別在于創建的形式不一樣,Criteria是在線的,所…