登陆注册
19122000000025

第25章 Oracle的全文搜索(5)

rs=st.executeQuery("select*from myblob where id=1");

if(rs.next())

{

blob=rs.getBlob("fblob");

ImageIcon icon=new ImageIcon(blob.getBytes(1,(int)blob.length()));

JLabel l=new JLabel(icon);

JFrame jf=new JFrame("mywife");

jf.getContentPane().add(l);

jf.pack();

jf.setVisible(true);

}

}

catch(SQLException se)

{

se.printStackTrace();

}

finally

{

//——finally——start

if(rs!=null)

{

try

{

rs.close();

}

catch(SQLException e)

{

e.printStackTrace();

}

}

//////////////////////////////if(st!=null)

{

try

{

st.close();

}

catch(SQLException e)

{

e.printStackTrace();

}

}

/////////////////////////////

if(conn!=null)

{

try

{

conn.close();

}

catch(SQLException e)

{

e.printStackTrace();

}

}

}

}

}

刚才的程序使用了Swing技术。下面再给出一个用JSP实现的例子。

案例名称:图片数据的读取和在网页上显示

程序名称:showimg.jsp

<%@ page contentType="text/html;charset=gbk"%>

<%@ page import="java.sql.*,java.io.*"%>

<%!

Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

%>

<%

//安装驱动程序——

try

{

Class.forName("oracle.jdbc.driver.OracleDriver");

}

catch(ClassNotFoundException ce)

{

out.println(ce.getMessage());

}

//执行——

try

{

//获得Connection对象

String url="jdbc:oracle:thin:@ localhost:1521:yuanyuan";

conn=DriverManager.getConnection(url,"scott","tiger");

stmt=conn.createStatement();

rs=stmt.executeQuery("SELECT*FROM myblob where id=1");

if(rs.next())

{

…Blob blob=rs.getBlob("fblob");

byte[] buf=blob.getBytes(1,(int)blob.length());

response.setContentType("image/jpeg");

//图片的输出流

OutputStream wt=response.getOutputStream();

//将缓冲区的输入输出到页面

wt.write(buf);

//输入完毕,清除缓冲

wt.flush();

wt.close();

}

}

catch(SQLException e)

{

System.out.println(e.getMessage());

}

finally

{

if(rs!=null)

{

…try

{

rs.close();

}

catch(SQLException ee)

{

System.out.println(ee.getMessage());

}

}

if(stmt!=null)

{

…try

{

stmt.close();

}

catch(SQLException ee)

{

System.out.println(ee.getMessage());

}

}

if(conn!=null)

{

…try

{

conn.close();

}

catch(SQLException ee)

{

System.out.println(ee.getMessage());

}

}

}

%>

5.5.2BLOB的搜索

现在,为fblob列创建索引,语句如下:

create index idx myblob on myblob(fblob)indextype is ctxsys.context;

索引建立好之后,就可以执行全文搜索了。执行下面的语句,在fblob列中搜索“大禹”。

select id,fname from myblob where contains(fblob,"大禹")>0;

5.5.3BLOB搜索的应用

现在,有了前面学习的关于Oracle 二进制文档全文搜索的知识,可以做两个简单的应用。

下面这两个例子使用前面建立的myblob数据表,一个是桌面应用,一个是Web应用。使用的技术分别为:Oracle9i+Java Swing,Oracle9i+JSP2.4。

这两个应用允许用户输入关键词,然后单击“搜索”按钮,执行全文搜索,显示搜索结果。

案例名称:Oracle二进制文档全文搜索桌面应用

程序名称:BinSearcher.java

import java.util.*;

import java.io.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

public classBinSearcher

{

//搜索关键词

static JTextField jtf=null;

//搜索按钮

static JButton jb=null;

//文本区域

static JTextArea jta;

private static void createAndShowGUI()

{

…JFrame.setDefaultLookAndFeelDecorated(true);

JFrame frame=new JFrame("Binary Searcher!yutianen@163.com");

frame.setDefaultCloseOperation(JFrame.EXIT ONCLOSE);

Container con=frame.getContentPane();

con.setLayout(newBorderLayout());

JPanel jpup=new JPanel();

jpup.setLayout(new GridLayout(1,2));

jtf=new JTextField(30);

jb=new JButton("搜索");

jb.addActionListener

newActionListener()

{

同类推荐
  • 中学理科课程资源-感受化学生活

    中学理科课程资源-感受化学生活

    追溯数理化的演变历程,对话最新颖权威的方法,探索最成功的课程教学,感受最前沿的科技动态,理科教育的全程解码,数理化的直面写真。
  • 语文新课标课外必读第八辑——喀尔巴阡城堡

    语文新课标课外必读第八辑——喀尔巴阡城堡

    国家教育部颁布了最新《语文课程标准》,统称新课标,对中、小学语文教学指定了阅读书目,对阅读的数量、内容、质量以及速度都提出了明确的要求,这对于提高学生的阅读能力,培养语文素养,陶冶情操,促进学生终身学习和终身可持续发展,对于提高广大人民的文学素养具有极大的意义。
  • 攻克7大学习问题的145个好方法

    攻克7大学习问题的145个好方法

    学习成绩总是提高不了怎么办?学过的东西总是记不住怎么办?考试总是发慌考不好怎么办?家长想正确指导孩子学习该怎么办?……本书共分五部分,分别针对学习中常见的七类问题——学习兴趣、阅读习惯、听课效率、学习习惯、学习方法、记忆力、应付考试,为大家提供了一些行之有效的方法。
  • 2006全国初中生精彩作文年选

    2006全国初中生精彩作文年选

    本书为“2006年中国校园文学精选”之一,该系列的编辑方针是,力求选出该年度最有代表性的作品,力求选出精品和力作,力求能够反映该年度某个文体领域最主要的创作流派、题材热点、艺术形式上的微妙变化。同时,坚持风格、手法、形式、语言的充分多样化,注重作品的创新价值,注重满足广大读者的阅读期待,多选雅俗共赏的佳作。它对读者具有潜移默化作用,有示范、引导、文学史价值、资料文献价值、培育新人的价值等等。是一本有价值,有内涵的阅读选本。
  • 语文新课标必读-孟子选注

    语文新课标必读-孟子选注

    孟子(约公元前372—前289年),战国时期的思想家、政治家、教育家。名轲,字子舆,邹(今山东邹县)人。幼年丧父,靠母亲抚育成人。年轻时曾从孔子之孙子思的门人学习,30岁左右收徒讲学,为了推行自己的政治主张,44岁时开始周游列国,先后到齐、宋、滕、魏等国,游说诸侯,宣扬“仁政”“王道”,始终不受重用。晚年返回家乡,讲学著述,直到去世。汉武帝时“罢黜百家,独尊儒术”,孟子和孔子一样,成为封建统治者尊崇的偶像;到唐代,已将孟子和孔子并称;元、明时称为“亚圣”。均不被采纳。
热门推荐
  • 未解知识之谜总集(求知探索系列丛书)

    未解知识之谜总集(求知探索系列丛书)

    《未解知识之谜总集》共分五章,包括人体生理之谜、趣味人体、古怪人类探秘、神奇的心理感应现象、世间奇人异事。
  • 穿越之帝王争宠

    穿越之帝王争宠

    意外穿越却离奇毁容,一届丑女如何在这个波谲诡异的皇宫生存下去?展智谋,玩心计,她不过动动手指,这求亲的轿子就排到了天边?啥,这世界里最大的两个皇帝也来抢她,喂,这可有点大条了,不嫁不行?那我跑还不行么?情节虚构,请勿模仿!
  • 穹苍之巅

    穹苍之巅

    “敖氏乾坤多凄凉,俊杰未出势难挡,大智若愚承祖志,帝气再现白龙岗。”一道霓神批语,引出一代逆天奇才。氏族恩仇交错,宗派明争暗斗,剑拔弩张。百年灭族之恨,父亲惨死之仇,猪脚该如何努力,才撼动中玄域那几颗参天大树,才能报得血海深仇。诸君可愿携手,共赴穹苍之巅!穹苍之巅讨论QQ群:369878255
  • 文武神帝

    文武神帝

    “你是正义的神,我是邪恶的魔……你胜了,我败了,但你却无法杀死我……我已掘好坟墓,这次睡的是我,待我再次醒来,睡的将会是你,以及无知的苍生……”魔既殁,神已立。悠悠十万载,转眼即过。魔之墓也经不住岁月的沧桑,褪去了魔血的红,变成了澄清的绿……一位被神遗弃的少年,用血染红了一块绿色的玉……他浑然不知,自己已然踏上了一条救魔的路……
  • 望族闺秀

    望族闺秀

    名门嫡女,廿载荣华,惨遭算计,踢下悬崖。绝崖惊魂,含恨重生。一改昔日柔弱,更作复仇佳人。望族血雨,以血还血;阴谋算计,步步惊心。凭你幕后更有黑手,我自步步为赢。--情节虚构,请勿模仿
  • 觅道之行

    觅道之行

    一老一少牵着一匹瘦小的骆驼,走在狂风飞舞的沙漠之中。“有些人想得到强大的力量,有些人想得到无尽的财富,有些人想得到至高的权力,还有一些人,他用尽一生去寻觅,去冒险,只为了一种叫做‘道’的东西。“那个老人眯着眼说。“‘道’是什么?可以吃吗?”小孩好奇地问。老人脸上的皱纹像八爪鱼一样舒展了开来,笑着说:“我也不知道,但好像是可以吃的。”“那一定非常非常好吃。”小孩肯定地点了点头。
  • 戏水龙王

    戏水龙王

    人类因为世界性的灾难而兵临灭绝,却也因为宇宙黑洞的产生而存活。地球因为太阳的异常活动而差点毁灭,却因为黑洞的出现而产生重组现象。于是一个全新的世界产生了,一个未知而神奇的世界。这里有所有人类所未见到的各色各样的生物,人类也很难想象这些奇形怪状的生物怎么可能跟人类生活在同一个空间,但这确实发生了。一个全新的世界,一个充满传奇的世界。
  • 沫黎随笔短篇

    沫黎随笔短篇

    个人写的一些随笔短篇,希望大家可以随便看一下!
  • 悍神

    悍神

    啪、啪、啪、啪,一记悍拳轰出,啪啪爆响,每爆一次,悍拳威力就是突地猛增。呼啸声中轰的敌人吐血倒飞,胸穿腹烂,临死体会到了咱的凶悍。公主你不要凶,虽然你是转世女仙,虽然你法力无边,但咱英俊勇猛,蜜语甜言,终会把你主仆二人娶到身边。妖丹宝藏随便找,不要奇怪,因为有天眼。修仙之路长漫漫,何时元神游九天。人类修仙等级1去妄期2入定期3来复期4退藏期5筑基期6了性期7已明期8金丹期9蕴神期10元婴期妖兽的等级1妖丁2妖兵3妖将4妖帅5妖王6妖皇7妖帝8妖仙9妖神10妖圣
  • 昆仑仙记

    昆仑仙记

    寻找星辰归位之法,拯救部落,平定王国,重振天庭,温暖精灵,而完成这一切,还需凡间之人以及仙界众神的通力合作。