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();
    	}
    	
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值