`
hello_world_hello
  • 浏览: 8481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jpa入门

    博客分类:
  • jpa
阅读更多

JPA(java persistent api) 是sun公司推出的一个对象/关系(ORM)标准,常见的orm厂商有Hibernate, Toplink,jdo等,这些产品都有各自的实现方式,sun 公司为了统一ORM 持久化技术提高代码的灵活性(面向接口编程)推出了这一标准,这套标准只定义了一些接口,具体实现有各个厂商自己决定(类似于jdbc标准,sun提供接口,各个数据库厂商提供具体实现)。下面举例讲述以Hibernate实现JPA的常见操作。

先直接写个简单的例子,从整体上大致了解下JPA的书写流程。

 

  1. 定义一个简单的JavaBean
    package com.zt.bean;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="tb_person")
    public class Person {
    	private int id;
    	private String name;
    	@Id
    	@GeneratedValue
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	@Column(name="name")
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    }
    
     
  2. JPA 需要在类路径的META-INF有persistence.xml文件,在src目录下新建META-INF目录,然后新建persistence.xml文件:persistence-unit是一系列持久化javabean的集合name 要和 Persistence.createEntityManagerFactory("mysqljpa")的名字一致。 
    <?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_2_0.xsd"
                 version="2.0">
        <persistence-unit name="mysqljpa" transaction-type="RESOURCE_LOCAL">
            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
                <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
                <property name="hibernate.connection.username" value="root"/>
                <property name="hibernate.connection.password" value="root"/>
                <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="hibernate.hbm2ddl.auto" value="update"/>
                <property name="hibernate.show_sql" value="true"/>
                <property name="hibernate.format_sql" value="true"/>
            </properties>
        </persistence-unit>
    </persistence>
    
     
  3. 导入jar包(附件可下载)
  4. 测试代码
    @Test
    	public void testPersistent() {
    		EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("mysqljpa");
    		
    		EntityManager entityManager = entityManagerFactory.createEntityManager();
    		EntityTransaction transaction = entityManager.getTransaction();
    		transaction.begin();
    		
    		Person person = new Person();
    		person.setName("zhangsan");
    		entityManager.persist(person);
    		transaction.commit();
    		entityManager.close();
    		entityManagerFactory.close();
    	}
    	
     

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics