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

本文介绍如何使用NetBeans IDE结合Sun Java System Application Server及其自带的Derby DB数据库来创建一个简单的Java应用程序。主要内容包括项目的搭建过程、必要的JAR包导入、持久单元配置、实体类定义和服务层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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、付费专栏及课程。

余额充值