Flex存取数据库Image类型数据-Java后台

  如果将图片数据储存在数据库内,如何把它显示出来,本例涉及技术语言有:
  1. Flex ByteArray转化为图片SWFLoader/Image
  2. LCDS RemoteObject运用
  3. Java SE 6与Hibernate
  4. MS SQL Server 2008 R2 Image数据类型存取
  数据如:
  
  Flex 显示结果,这里是id为5的图片
  
  l 数据库创建
  本例使用MS SQL Server 2008 R2,创建一个表AlbumImage,图见上
  CREATE TABLE [dbo].[AlbumImage](
  [id] [int] IDENTITY(1,1) NOT NULL,
  [ImageData] [image] NULL,
  [ImageName] [nvarchar](50) NULL,
  [ImageType] [nvarchar](50) NULL,
  CONSTRAINT [PK_AlbumImage] PRIMARY KEY CLUSTERED
  (
  [id] ASC
  )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  使用Java 6和Hibernate作为后台服务并与数据库打交道,AlbumImage.hbm.xml全文 l Java主要服务文件AlbumImageService.Java
  public class AlbumImageService {
  // 根据id获取一个AlbumImage
  Private AlbumImage getAlbumImage(int identity){ Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx =session.beginTransaction(); AlbumImage item=new AlbumImage(); try{ item = (AlbumImage)session.get(com.les.java3016.AlbumImag e.class, identity); tx.commit(); } catch (Exception e) { tx.rollback(); System.out.println("代号:1002,getAlbumImage错误"); } finally{ session.close(); HibernateUtil.getSessionFactory().close(); } return item; } // 对外方法,获取一个AlbumImage的属性ImageData,该属性就是储存了image的二进制数据
  publicbyte[] getImageData (int _id){
  byte[] _imageData=null;
  _imageData=this.getAlbumImage(_id).getImageData();
  return _imageData;
  }
  }
  l LCDS的remoting-config.xml,这个很简单,加一个关联远程java对象的destination。
  
  
  com.les.java3016.AlbumImageService
  
  
  l Flex文件,首先定义一个RemoteObject和一个SWFLoader
  
  
  加入RemoteObject事件处理函数,java的byte[] 转化为AS3的flash.utils.ByteArray类型。 //结果处理函数 privatefunction onselectresult(event:ResultEvent):void{ var _imageData:ByteArray=ByteArray(event.result); _imageLoader=new Loader(); _imageLoader.loadBytes(_imageData); mySwfLoader.addChild(_imageLoader); } //处理错误函数 privatefunction onfault(event:FaultEvent):void{ Alert.show(event.fault.faultString, 'Error'); } 本例将远程调用放于Application的creationComplete事件
  protectedfunction application1_creationCompleteHandler(event:FlexEve nt):void
  { //取得Id为5的图片;
  srv.getImageData(5);
  }
  完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值