首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 移动开发 | 游戏开发 | 数据库开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  Java开发首页 | Java基础 | Java高级编程 | J2EE | J2SE | EJB | J2ME | Servlet/JSP | Applet/Swing | Struts/Hibernate
  您现在的位置:天新网 > 软件开发 > Java开发 > EJB
Kodo EJB:符合EJB3规范的持久层框架
http://dev.21tx.com 2006年03月24日 bea 肖菁

每日文章精萃
.Net:XML Web Service 安全性 Java:对一个简单的JDBC包装器的扩展及应
ASP:用ASP编写计数器 PHP:PHP 编码规范(9)
JSP:JSP高级编程(4) CGI:Cgi入门教程之:12 代码详解
VB:SQL数据查询的例子,包括许多复杂的 VC:VC中预处理指令与宏定义的妙用之一

1 2 下一页

  Kodo是BEA公司收购SolarMetric公司后获得的持久层框架项目,以前只是支持JDO标准,2006年2月13日,BEA公司宣布发布Kodo项目的最新版本--Kodo 4.0.0 Early Access 4,Kodo 4.0.0 EA4支持EJB3和JDO2两个标准,本文中,我们将首先学习和了解KODO EJB,了解如何使用Kodo EJB完成开发工作。

  我们将按照两种不同的情况讲述如何使用Kodo EJB进行开发,一种是通过命令行工具,另外一种是在Eclipse中使用Ant任务。

  关于EJB3和JDO2的更多内容请大家查看文章最后参考资源中的相关内容。

  为什么使用Kodo EJB

  在Kodo EJB框架中,对象和关系数据库之间的映射(对象-表,对象属性-字段等)都是使用JDK5.0中的最新特性—注释(Annotation)来提供,不再需要提供额外的配置文件。

  根据EJB3规范的要求,Kodo EJB除了支持在EJB容器中使用满足重量级企业应用的需求之外,也支持在普通Java应用中采用,提供轻量级的持久层框架。只不过当我们在EJB容器中使用Kodo EJB时我们需要更多的工作以便满足EJB容器的要求。

  下载、安装Kodo

  准备工作

  由于Kodo是基于注释机制的框架,我们必须使用JDK5.0完成开发工作。所以下载、安装Kodo之前,请确保您已经下载和安装了JDK5.0。

  为了演示的需要,我们选择MySQL数据库作为持久化的目标数据库,请大家自己到www.mysql.com下载最新的MySQL数据库后安装。

  下载、安装Kodo

  Kodo的最新版本是Kodo 4.0.0 Early Access 4,目前大家可以到http://www.solarmetric.com/去下载试用版本,下载时需要注册,你会得到30天的License。

  将下载的压缩文件解压到c:/kodo4目录下(后面将使用%KODO_HOME%来引用这个目录),打开%KODO_HOME%/bin/kodocmd.cmd文件,将其中的KODODIR设置为您的Kodo的安装目录,将JDKHOME设置为Java的安装目录。

  Kodo EJB实例

  上面的工作完成以后,我们就可以开发Kodo EJB应用了,下面的例子将主要讲述如何开发一个轻量级的Kodo EJB例子,支持在Java应用中的调用,而不依赖于EJB容器,关于如何在EJB容器中配置使用Kodo EJB是一个大的课题,作者将另外撰文详细论述。

  下面我们将用一个简单的例子来说明创建Kodo EJB应用的典型步骤,实例中我们将创建名为Book的持久化对象,该对象将被持久化到本地的MySQL数据库中。

  请大家注意的是,下面的说明都基于Windows 2000操作系统,如果您使用其它操作系统,可能需要做出相应的变更。

  1. 建立工程目录

      在C:盘根目下创建名为KodoExamples的目录,我们所有的类文件和配置都放在这个目录下。

  2. 创建持久化类

      新创建持久化类Book,为了说明的简单,该类只有两个属性:id和name,其中id是书的编号(编号由MySQL数据库自动生成),name属性表示书的名称。持久化类的全部代码、注释和说明如下:
    ackage org.vivianj.kodo.examples.beans; 
    import javax.persistence.Basic; 
    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.GenerationType; 
    import javax.persistence.Id; 
    import javax.persistence.Inheritance; 
    import javax.persistence.InheritanceType; 
    import javax.persistence.Table; 
    
    /** 
     * Book 用于表征系统中的书籍对象,他有两个属性id - 书籍编号,书籍编号将由MySQL数据库自动生成name - 书名 
    */ 
    /* Entity注释表示该类是持久化类,的name属性是该实体在查询中对应的唯一名称,默认是类名 */ 
    (name = "Book") 
    /* Table注释的name属性指定该持久化类对应的数据表的名称,默认数据表名和类名保持一致,为了增强代码的可移植性,建议大家在name属性中使用大写英文字母 */ 
    (name = "BOOKS") 
    /* Inheritance注释的strategy确定了持久化对象和数据表之间的关系,可选择项包括SINGLE_TABLE、JOINED和TABLE_PER_CLASS,我们这里采用TABLE_PER_CLASS */ 
    (strategy = InheritanceType.TABLE_PER_CLASS) 
    public class Book { 
     /* Id注释表示该字段是标识字段 */ 
      
     /* GeneratedValue注释定义了该标识字段的产生方式,我们的演示系统中id由MySQL数据库字段自动生成,因此选择GenerationType.IDENTITY */ 
     (strategy = GenerationType.IDENTITY) 
     /* Column注释的name属性定义了该类属性对应的数据字段的名称,为了最大限度保持系统和数据库之前的独立性,建议使用大写字符 */ 
     (name = "ID") 
     public int id; 
    
     /* Basic注释表示该属性是基本属性 */ 
      
     /* Column注释的name属性定义了该类属性对应的数据字段的名称,为了最大限度保持系统和数据库之前的独立性,建议使用大写字符 */ 
     (name = "NAME") 
     public String name = null; 
    
  3. 准备数据库

      在MySQL数据库中新建名为Kodo的数据库。

  4. 准备配置文件

      在C:KodoExamples新建META-INF目录,随后在该目录下新建kodo.XML和persistence.xml文件。

    a) 
    Kodo.xml文件中提供访问数据库所需要的细节信息、使用Kodo所需要的授权(License)内容、Kodo运行时的日志管理等。 
    <?xml version="1.0"?> 
    <persistence> 
     <persistence-unit name=""> 
      <properties> 
       <!-- Kodo的序列号,请输入您下载或者购买Kodo时得到的License --> 
       <property name="kodo.LicenseKey" 
        value="093D-BF3F-C10E-0F8F-0F00" /> 
    
       <!-- 以下是访问数据库时需要提供的信息 --> 
       <property name="kodo.ConnectionURL" 
        value="JDBC:mysql://localhost/kodo" /> 
       <property name="kodo.ConnectionDriverName" 
        value="org.gjt.mm.mysql.Driver" /> 
       <property name="kodo.ConnectionUserName" value="root" /> 
       <property name="kodo.ConnectionPassword" value="root" /> 
    
    <!-- 设置Kodo运行过程中的日志级别 --> 
       <property name="kodo.Log" 
        value="DefaultLevel=WARN, Runtime=INFO, Tool=DEBUG" /> 
      </properties> 
     </persistence-unit> 
    </persistence> 
    
    
    b) 
    persistence.xml提供EJB实体管理所需要的信息,比如确定使用哪种持久化管理器和需要被管理的持久化类。 
    <?xml version="1.0"?> 
    <persistence> 
     <persistence-unit name=""> 
      <provider>kodo.persistence.PersistenceProviderImpl</provider> 
      <!-- 需要被Kodo EJB管理的持久化类 --> 
      <class>org.vivianj.kodo.examples.beans.Book</class> 
     </persistence-unit> 
    </persistence>
  5. 编译持久化类

      打开一个命令行窗口,进入%KODO_HOME%/bin目录下,执行kodocmd.cmd命令,然后将MySQL的驱动文件使用set classpath=%classpath%;c:/mysql-connector-java-3.1.8-bin.jar这样的方式加入到CLASSPATH中。

      执行javac C:KodoExamplesorgvivianjkodoxampleseans*.java编译持久化类。

  6. 加强(Enhancer)持久化类

      KODO中使用加强工具(Enhancer)对持久化类进行调整,支持性能优化、懒惰式装载等特性。

      我们可以使用kodoc C:KodoExamplesorgvivianjkodoxampleseans*.java这样的命令来完成持久化类的加强工作。

  7. 生成数据库表

      KODO中提供了专门的MappingTool工具,能够自动的根据持久化类及他们之间的关系为我们生成创建数据库所需要的SQL语句或者直接创建数据表。

      演示实例中,我们使用kodoc C:KodoExamplesorgvivianjkodoxampleseans*.java完成数据表的创建,命令执行完成后,我们访问MySQL中的kodo数据库,可以看到里面已经创建了名为books的数据表。

  8. 测试一下

  现在,所有的工作都已经完成,我们可以编写一段代码测试一下上面的工作是否有效,在C:kodoExamples目录下新建Test.java,然后输入如下内容:

import javax.persistence.EntityManager; 
import javax.persistence.EntityManagerFactory; 
import javax.persistence.Persistence; 
import javax.persistence.PersistenceContextType; 

import org.vivianj.kodo.examples.beans.Book; 

public class Test { 

 public static void main(String[] args) { 
  /* 获得EJB的实体管理器 */ 
  EntityManagerFactory emf = Persistence.createEntityManagerFactory(null); 
  EntityManager em = emf 
    .createEntityManager(PersistenceContextType.EXTENDED); 
  /* 开始事务 */ 
  em.getTransaction().begin(); 
   
  /* 创建新的持久化对象 */ 
  Book book = new Book(); 
  /* 设置Book对象的name属性 */ 
  book.name = "Kodo入门"; 
  /* 持久化对象 */ 
  em.persist(book); 

  /* 结束事务 */ 
  em.getTransaction().commit(); 
  em.close(); 
  emf.close(); 
 } 

} 

  执行Test类,执行完后会发现books表中已经增加了一条新的记录。

上一篇: 用java输出杨辉三角形
下一篇: 加密与解密原理的一个例子

1 2 下一页

编辑推荐
相关内容
·EJB3 Persistence API标准化持久性
·前进:从EJB 2.1到EJB 3.0
·利用EJB 3.0的JPA设计企业应用程序
·加密与解密原理的一个例子
·EJB轻松进阶(2)
·EJB轻松进阶(6)
·EJB轻松进阶(8)
·EJB的编程规则之Session Bean
·EJB中Session Bean的见解
·基于EJB技术的商务预订系统的开发
·在Java EE环境下使用Kodo EJB
·EJB3 实体组件在 J2SE 中的使用
·Kodo EJB:实现类和类之间的关联关系
·Kodo EJB:符合EJB3规范的持久层框架
·利用实体EJB来避免性能缺陷:一种映射持久
·JavaBean实现多个文件上传的两种方法
·会话EJB的学习
·JavaBean 实例
·ejb内部资参之三
·EJB的编程限制
最近更新
人气最热
·JavaBean的属性
·求下近似
·用java输出杨辉三角形
·加密与解密原理的一个例子
·利用实体EJB来避免性能缺陷:一种映射持久
·EJB轻松进阶(1)
·EJB轻松进阶(2)
·EJB轻松进阶(3)
·EJB轻松进阶(4)
·EJB轻松进阶(5)
·EJB轻松进阶(1)
·Enterprise JavaBeans导论(1)
·实战JBOSS――教你写第一个EJB
·用java输出杨辉三角形
·EJB轻松进阶(2)
·从JSP调用EJB
·EJB轻松进阶(3)
·EJB轻松进阶(4)
·EJB轻松进阶(8)
·EJB轻松进阶(5)

 
·[硬件]实战硬盘评测 磁盘密度与缓存容量谁更
·[数码]完全不费功夫 最直接的MP3保养四招鲜
·[汽车]非"常"大众非常车 欧洲名店ABT改装厂介
·[开发]Win2000下IIS中配置PHP具体方法
·[资讯]IT经理世界:重构ERP
·[游戏]《大话II》做天终极帖
·[本本]酒红色镶边 NEC S3100显露另类个性
·[办公]“服务” 打通了天威通用耗材的畅销经
·[手机]持续狂泻 欧版三星D508低价大甩卖仅售2
·[考试]江苏本二征求平行志愿填报火 专业不服
·[学院][课件集锦]让立体图形转起来
·[娱乐]狐狸上一百层
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net