`
wtb
  • 浏览: 105891 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

EJB3操作Oracle的CLOB/BLOB

阅读更多

本人有生以以来第一个blog文章,居然还是转贴,哈。

ava.sql.Blob and Clob support

The EJB 3.0 specification has support for Blob and Clob types. The specification allows you to map the following types to an entity property:
  • java.sql.Blob
  • java.sql.Clob
  • any Serializable Object
  • byte[], Byte[]
  • char[], String, Character[] 

To use this feature just need to use the @javax.persistence.Lob annotation. The Lob annotation is an encapsulation of what type of lob you want. Below is an example of defining fields in an entity that are blobs or clobs.

@Entity
public class BlobEntity implements Serializable
{
private long id;
private Blob blobby;
private Clob clobby;

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
public long getId()
{
return id;
}

public void setId(long id)
{
this.id = id;
}

@Lob @Basic(fetch = FetchType.EAGER)
public Blob getBlobby()
{
return blobby;
}

public void setBlobby(Blob blobby)
{
this.blobby = blobby;
}

@Lob @Basic(fetch = FetchType.EAGER)
public Clob getClobby()
{
return clobby;
}

public void setClobby(Clob clobby)
{
this.clobby = clobby;
}


}

Working with Blobs and Clobs

Open up LobTesterBean and look for the create() method. JBoss EJB3 is built on top of the Hibernate persistence engine. Hibernate has some helper methods for creating blobs and clobs that LobTesterBean uses.

Blob Creation

org.hibernate.Hibernate.createBlob(byte[] bytes)
 
org.hibernate.Hibernate.createBlob(InputStream stream, int length)
 
org.hibernate.Hibernate.createBlob(InputStream stream)
 

Clob Creation

org.hibernate.Hibernate.createClob(String string)
 
org.hibernate.Hibernate.createClob(Reader reader, int length)
 

Blobs and clobs must only be accessed within a transaction. Blobs and clobs are also not serializable or detachable.

Mapping Strings/
byte[]
to Clob/Blob

This is pretty easy, just look at BlobEntity2.java

@Entity
public class BlobEntity2 implements Serializable
{
private long id;
private byte[] blobby;
private String clobby;

@Id @GeneratedValue(strategy=GenerationType.AUTO)
public long getId()
{
return id;
}

public void setId(long id)
{
this.id = id;
}

@Lob @Basic(fetch = FetchType.EAGER)
public byte[] getBlobby()
{
return blobby;
}

public void setBlobby(byte[] blobby)
{
this.blobby = blobby;
}

@Lob @Basic(fetch = FetchType.EAGER)
public String getClobby()
{
return clobby;
}

public void setClobby(String clobby)
{
this.clobby = clobby;
}


}

Building and Running

To build and run the example, make sure you have ejb3.deployer installed in JBoss 4.0.x and have JBoss running. See the reference manual on how to install EJB 3.0.
Unix:    $ export JBOSS_HOME=<where your jboss 4.0 distribution is>
Windows: $ set JBOSS_HOME=<where your jboss 4.0 distribution is>
$ ant
$ ant run

View the tables and rows

You can view the tables created by JBoss by going to the Hypersonic SQL service, scrolling down to the startDatabaseManager button and clicking it. A Hypersonic SQL window will be minimized, but you can open it up to look at the tables and do queries.

本人简写的例子:
写数据:
entity.setContent(Hibernate.createClob("clob的内容"));
读数据:
 System.out.println(entity.getContent().getSubString(1,(int)bp.getContent().length()));


分享到:
评论

相关推荐

    精通EJB3.0 中文版 3/3

    总共3个zip文件 请全部下载后再解压 7zip压缩 罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行...

    精通EJB3.0 中文版 1/3

    总共3个zip文件 请全部下载后再解压 7zip压缩 罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行...

    EJB3的三本好书第2本, EJB3 in Action 2007

    EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...

    EJB3的三本好书第3本 Mastering EJB3 4ed

    EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,附带源代码,这本书的好处是与Mastering EJB 3ed有一定的继承性,可以对比来看. 3本书的地址 1. Beginning EJB3 Application Development From Novice to ...

    精通EJB3.0 中文版 2/3

    总共3个zip文件 请全部下载后再解压 7zip压缩 罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行...

    EJB连接Oracle数据库

    在EJB中连接Oracle数据库是常见的操作,这对于开发涉及数据库交互的应用至关重要。Oracle数据库是一种广泛应用的关系型数据库管理系统,以其高性能、高可靠性著称。 在EJB中连接Oracle数据库,首先需要确保以下几个...

    EJB3的三本好书第1本 Beginning EJB3 Application Development From Novice to Professional

    EJB3的三本好书第一本,从glassfish的角度全面介绍EJB3 3本书分别是: 1. Beginning EJB3 Application Development From Novice to Professional联接http://download.csdn.net/source/1865607 2. EJB3 in Action 2007...

    EJB的B-S C-S结构编写实例.rar

    EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展、安全和事务处理的服务器端应用程序。...在实际操作中,你将发现EJB的强大功能和灵活性,以及它在构建大型企业级应用时的重要地位。

    实战角度比较EJB2和EJB3的架构异同

    @EJB(name = "ejb/shopping-cart", beanName = "cart1", beanInterface = ShoppingCart.class, description = "The shopping cart for this application") private Cart myCart; ``` 在EJB3中,JNDI名称的确定可以...

    JSP+Servlet+EJB3.0+Oracle10g火车售票系统

    本系统主要实现火车查询...3.选择Oracle数据库通过SQL语句建立表,插入相关的测试数据等相关操作,完成数据库的建立。 4.本设计采用JSP+Servlet+EJB3.0+Oracle10g工具进行开发,最后通过JDBC进行与数据库的相关的链接。

    ejb3 带源码

    - **分布式事务处理**:EJB3支持分布式事务,可以跨多个资源管理器协调事务操作。 - **集群与高可用**:EJB3允许在集群环境中部署,提高系统的可用性和可伸缩性。 - **安全性**:EJB3提供了基于角色的访问控制...

    Weblogic11g+EJB3的小例子

    Weblogic 11g 是一款由甲骨文公司(Oracle)开发的企业级应用服务器,它提供了全面的Java EE(Java Platform, Enterprise Edition)支持,包括EJB(Enterprise JavaBeans)3.0规范。EJB是Java后端开发中的核心组件,...

    ejb3_structs

    1. **配置Struts的Action**:定义Action类,这些类通常调用EJB3的bean来完成业务操作。 2. **配置Struts的配置文件**:在struts-config.xml或struts2的struts.xml中,定义Action的映射和视图跳转规则。 3. **部署...

    EJB3基础教程

    **EJB3基础教程** Enterprise JavaBeans(EJB)是Java平台上用于构建可扩展、安全且事务处理能力强的服务器端应用程序的重要技术。EJB3是EJB规范的一个重大改进版本,它极大地简化了开发过程,引入了许多现代编程...

    RSA7.5 下一个EJB3例子,WAS 7.0 + ORACLE10g

    他用的是DB2数据库,这台机器上没安,所以就改造一下用在Oracle10g上了,有多对多关系映射,EJB3比hibernate好,我的感觉,而且是正宗名门。 压缩包有三个工程文件,导入RSA7.5中就可以了,别忘了先建数据库再在RSA...

    EJB3开发Entity

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了许多简化和改进,使得开发更加高效且易于理解。本文将深入探讨EJB3中的Entity Bean,它是EJB3中的持久化组件,用于代表数据库中的实体。 1. **实体Bean的概念*...

    ejb3进阶案例

    在ejb3中,可以使用`EntityManager`和`EntityTransaction`来处理数据库操作,如CRUD(创建、读取、更新、删除)操作。ejb3的实体管理器提供了事务管理和懒加载等功能,大大提高了开发效率。 **3. MessageDriven ...

    EJB3 PPT教程

    **EJB3(Enterprise JavaBeans 3)是Java EE(Enterprise Edition)平台中用于构建企业级应用程序的重要组件模型。这个PPT教程详细介绍了EJB3的各种核心概念和技术,旨在帮助学习者掌握EJB3的核心特性并能实际应用到...

Global site tag (gtag.js) - Google Analytics