一、预备知识 
                        JPA即Java Persistence API,它是是EJB 3.0 规范 (JSR 220) 中引入的标准对象关系可持续性。 
                        以下文字来源于互联网: 
                          
                          程序代码 
                        JPA主要借鉴了领导持久层的诸如Hibernate,Oracle TopLink,Java Data 
                          Objects (JDO)等持久层框架,以及早期EJB的容器管理持久化的思想与概念。实现了ORM(对象关系映射:Object-Relational 
                          Mapping)和 实体间的关系映射等功能。 
                         1,简化程序模型 
                         2,使用注释,简化配置 
                         3,ORM:对象关系映射 
                         4,EJB-QL:提供了动态查询,和功能强大的EJB查询语言 
                         5,独立。可在EJB容器之外单独运行,也使得实体Bean更加容易测试 
                         6,灵活,可配置。可以使用第三方JPA provider实现 
                         OpenJPA概要: 
                         OpenJPA 是 Apache 组织提供的开源项目,它的前身是BEA公司的Kodo Java Persistence 
                          API,于2006年7月捐献给ASF(Apache 
                          Software Foundation),并于2007年8月28日发布了OpenJPA 1.0.0版本。OpenJPA 
                          100%实现了 EJB 3.0(JSR220) 
                          中的 JPA 标准,为开发者提供功能强大、使用简单的持久层数据管理框架。OpenJPA 当然实现了对象关系映射(ORM)与对象关系等功能。OpenJPA 
                          除了可以运行在符合EJB 3.0 标准的EJB容器中之外,还可以作为独立的持久层框架,轻松地与其它JavaEE应用框架集成。 
                         当前OpenJPA的最新版本是1.1 
                          
                          二、工具的下载及安装 
                         JDK 1.5的下载地址:http://java.sun.com 
                         Eclipse jee的下载地址:http://www.eclipse.org/downloads/ 
                         OpenJPA的下载地址:http://openjpa.apache.org/downloads.html 
                         Mysql的下载地址:http://dev.mysql.com/downloads/ 
                         Apache Tomcat的下载地址:http://tomcat.apache.org/download-60.cgi 
                         对于Eclipse jee跟OpenJPA直接解压缩就可以使用了,Mysql进行安装 
                          
                          三、Eclipse下环境的配置 
                         1,配置JPA。点击window --> Preferences的“参数选择”对象框当中选择JPA;接着,点击Configure 
                          User Libraries,在用户类库当中将OpenJPA的核心包以及依赖的外部包文件加到OpenJPA 
                          Library当中。配置后的效果图如下所示: 
                           
                         2,配置数据库连接,点击window --> Preferences的“参数选择”对象框当中选择Connectivity--> 
                          Driver Definitions,在数据库的选择项当中选择Mysql,并添加Mysql JDBC Driver。最终的效果如下图所示: 
                           
                         3,创建新的JPA Project:点击File --> New --> Other,在弹出的创建向导当中选择JPA,如下图所示: 
                           
                         点击Next(下一步)。在窗口当中输入项目名称,比如JPATraining,其它默认 
                           
                         点击Next(下一步) 
                           
                        各项默认就可以了,点击下一步 
                           
                        一切都默认就可以,因为之前已经配置完了。最后点击Finish 
                         最后,可以在Project Explorer当中看到src/META-INF/下面多了两个文件,一个叫persistence.xml,另一个叫orm.xml 
                         四、程序的编写 
                         1、数据库脚本 
                          
                        程序代码 Create TABLE ECA_USER(  
                          ID INT NOT NULL AUTO_INCREMENT,  
                          NAME VARCHAR(20) 
                        NOT NULL,    LOGINID 
                        VARCHAR(20) 
                        NOT NULL,    PASSWORD 
                        VARCHAR(32) 
                        NOT NULL,    AGE 
                        INT NOT NULL,  
                          PRIMARY KEY(ID)  
                        );  2,Entity 
                          
                        程序代码 package 
                        com.suneca.entity;  
                         
                        import javax.persistence.Column; 
                        import javax.persistence.Entity; 
                        import javax.persistence.Id; 
                        import javax.persistence.Table; 
                        import javax.persistence.GeneratedValue; 
                        import  static 
                        javax.persistence.GenerationType.IDENTITY;  
                          /** 
                        *  
                        * @author ChenYuzhe 
                        * @version 1.0 
                        * Create-Time:2008-7-16 下午06:55:22 
                        */ 
                        @Entity 
                        @Table(name="ECA_USER") 
                        public  class 
                        User {        
                            @Id      @GeneratedValue(strategy=IDENTITY)  
                            private 
                        int 
                        id;        
                            @Column(name 
                        = "NAME")  
                            private 
                        String name;        
                            @Column(name 
                        = "LOGINID")  
                            private 
                        String loginId;  
                                  @Column(name 
                        = "PASSWORD")  
                            private 
                        String password;  
                                  @Column(name 
                        = "AGE")  
                            private 
                        int 
                        age;        public 
                        int 
                        getId() {  
                                return 
                        id;      }  
                              public 
                        String getName() {  
                                return 
                        name;      }  
                              public 
                        String getLoginId() 
                        {          return 
                        loginId;      }  
                              public 
                        String getPassword() 
                        {          return 
                        password;      }  
                              public 
                        int 
                        getAge() {  
                                return 
                        age;      }  
                              public 
                        void 
                        setId(int 
                        id) {  
                                this.id 
                        = id;  
                            }  
                              public 
                        void 
                        setName(String name) 
                        {          this.name 
                        = name;  
                            }  
                              public 
                        void 
                        setLoginId(String 
                        loginId) {  
                                this.loginId 
                        = loginId;  
                            }  
                              public 
                        void 
                        setPassword(String 
                        password) {  
                                this.password 
                        = password;  
                            }  
                              public 
                        void 
                        setAge(int 
                        age) {  
                                this.age 
                        = age;  
                            }      
                        } 3,测试类的编写 
                          
                        程序代码 package com.suneca.test;  
                         
                        import javax.persistence.EntityManager; 
                        import javax.persistence.EntityManagerFactory; 
                        import javax.persistence.Persistence; 
                        import javax.persistence.EntityTransaction;  
                         
                        import com.suneca.entity.User;  
                          /** 
                        *  
                        * @author ChenYuzhe 
                        * @version 1.0 
                        * Create-Time:2008-7-16 下午06:55:08 
                        */  public 
                        class UserTest  {  
                                  public 
                        static 
                        void main(String[] 
                        args){      
                                // 
                        get Entity Manager          EntityManagerFactory 
                        factory = Persistence.createEntityManagerFactory("MyJPA");  
                                long startTime 
                        = System.currentTimeMillis();  
                                EntityManager 
                        em = factory.createEntityManager();  
                                          // 
                        get Transaction and Begin Transaction          EntityTransaction 
                        transaction = em.getTransaction();  
                                transaction.begin();  
                                User user 
                        = new 
                        User();          user.setName("陈毓哲");  
                                user.setLoginId("zizz");  
                                user.setPassword("admin");  
                                user.setAge(28);              
                                em.persist(user);  
                                  // 
                        Commit              transaction.commit();  
                                long endTime 
                        = System.currentTimeMillis();  
                                System.out.println(endTime 
                        - startTime);  
                                em.close();  
                            }  
                          } 4,persistence.xml的修改 
                          
                        程序代码 <?xml 
                        version="1.0" 
                        encoding="UTF-8"?>  
                        <persistence 
                        version="1.0" 
                        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_1_0.xsd">  
                            <persistence-unit 
                        name="MyJPA" 
                        transaction-type="RESOURCE_LOCAL">  
                                <!-- 
                        定义jpa的Provider -->          <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>  
                                <!-- 
                        定义持久化实体 -->          <class>com.suneca.entity.User</class>  
                                <!-- 
                        定义jpa的数据库参数 -->          <properties>  
                                    <property 
                        name="openjpa.ConnectionURL" 
                        value="jdbc:mysql://localhost:3306/suneca"/>  
                                    <property 
                        name="openjpa.ConnectionDriverName" 
                        value="com.mysql.jdbc.Driver"/>  
                                    <property 
                        name="openjpa.ConnectionUserName" 
                        value="root"/>  
                                    <property 
                        name="openjpa.ConnectionPassword" 
                        value="admin"/>  
                                </properties>  
                            </persistence-unit>  
                        </persistence> 
                        运行程序,将可以看到在数据库当中增加了。 
          
 |