使用EJBAnnotiation实现持久化到数据库

 1.用NetBeans+Sun Java System Application Server所带的数据库,derby DB,写该项目
    1).建立项目:新建项目->General->java Application
    2).导入需要的jar包:JDK/lib下
          appserv-rt.jar,javaee.jar
          TopLinkEssentials:toplink-essentials.jar,toplink-essentials-agent.jar
          Java DB Driver:derby.jar,derbyclient.jar,derbynet.jar
    3).建立持久单元:新建文件->Persistence->Persistence Unit[选择数据源]
       会生成META-INF/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 ="JavaApplication3PU"  transaction-type ="RESOURCE_LOCAL" >
    
< provider > oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider </ provider >
    
< class > day6.entity.Account </ class >
    
< properties >
      
< property  name ="toplink.jdbc.url"  value ="jdbc:derby://localhost:1527/sample" />
      
< property  name ="toplink.jdbc.user"  value ="app" />
      
< property  name ="toplink.jdbc.driver"  value ="org.apache.derby.jdbc.ClientDriver" />
      
< property  name ="toplink.jdbc.password"  value ="app" />
      
< property  name ="toplink.ddl-generation"  value ="drop-and-create-tables" />
    
</ properties >
  
</ persistence-unit >
</ persistence >

    4).建立实体:新建文件->Persistence->Entity class
package  day6.entity;
import  java.io.Serializable;
import  javax.persistence.Entity;
import  javax.persistence.GeneratedValue;
import  javax.persistence.GenerationType;
import  javax.persistence.Id;
@Entity
public   class  Account  implements  Serializable  {
    @Id
    @GeneratedValue(strategy 
= GenerationType.AUTO)
    
private Long id;
    
private String name;
    
public Account() {
    }


    
public String toString() {
        
return "day6.entity.Account[id=" + getId() + "]";
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }
    
}
    5.建立服务层:新建文件:->java classes->java class
package  day6.service;
import  day6.entity.Account;
import  javax.persistence.EntityManager;
import  javax.persistence.EntityManagerFactory;
import  javax.persistence.Persistence;
public   class  Service  {    
    
private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("JavaApplication3PU");    
    
public Service() {   }    
    
public void persist(Account account) {
        EntityManager em 
= emf.createEntityManager();
        em.getTransaction().begin();
        
try {
            em.persist(account);
            em.getTransaction().commit();
        }
 catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        }
 finally {
            em.close();
        }

    }
    
}

     6.)新建测试类进行测试:  
package  day6.test;
import  day6.entity.Account;
import  day6.service.Service;
public   class  AccountTest  {
    
public AccountTest() {    }
    
public static void main(String[] args) {
        Account account
=new Account();
        account.setId(
1L);
        account.setName(
"hoolie");
        Service service
=new Service();
        service.persist(account);
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值