登陆注册
19122000000026

第26章 Oracle的全文搜索(6)

public void actionPerformed(ActionEvent e)

{

String s=jtf.getText().trim();

jta.setText(search(s));

}

}

);

jpup.add(jtf);

jpup.add(jb);

jta=new JTextArea(10,60);

jta.setLineWrap(true);

JScrollPane jsp=new JScrollPane(jta);

con.add(jpup,BorderLayout.NORTH);

con.add(jsp,BorderLayout.CENTER);

frame.setSize(200,100);

frame.pack();

frame.setVisible(true);

}

public static void main(String[] args)

{

SwingUtilities.invokeLater

new Runnable()

{

public void run()

{

createAndShowGUI();

}

}

);

}

private static String search(String s)

{

…Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

StringBuffer res=new StringBuffer("");

try

{

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

}

catch(ClassNotFoundException ce)

{

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

}

try

{

//获得Connection对象

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

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

stmt=conn.createStatement();

String sql="select*from myblob where contains(fblob,′"+s+"")>0";

rs=stmt.executeQuery(sql);

while(rs.next())

{

res.append(rs.getString("id")+"

"+rs.getString("fname")+"

————-");

}

}

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());

}

}

}

return res.toString();

}

}

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

程序名称:BinSearcher.jsp

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

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

<html>

<form action=""method=post>

<input type="text"name="so"><input type=submit value="search!">

</form>

<body>

<%

…request.setCharacterEncoding("GBK");

if(request.getParameter("so")==null)

{

return;

}

try

{

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

}

catch(ClassNotFoundException e)

{

out.print(e.getMessage());

}

Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

try

{

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

String user="scott";

String password="tiger";

conn=DriverManager.getConnection(url,user,password);

stmt=conn.createStatement();

String sql="select*from myblob where contains(fblob,′"+request.getParameter("so")+"")

>0";

rs=stmt.executeQuery(sql);

while(rs.next())

{

String a=rs.getString("id");

String b=rs.getString("fname");

out.print(a+"<br>"+b+"<hr>");

}

}

catch(SQLException ee)

{

out.print(ee.getMessage());

}

finally

{

if(rs!=null)

{

try

{

rs.close();

}

catch(SQLException ex)

{

out.print(ex.getMessage());

}

}

if(stmt!=null)

{

try

{

stmt.close();

}

catch(SQLException ex)

{

out.print(ex.getMessage());

}

}

if(conn!=null)

{

try

{

conn.close();

}

catch(SQLException ex)

{

out.print(ex.getMessage());

}

}

}

%>

</body>

</html>

在搜索栏中输入“大禹”,单击“search”按钮。

小结

本章介绍了Oracle全文搜索的原理和基本使用方法。Oracle的全文搜索技术非常强大,并不是几十页的内容可以讲透的。笔者在这里介绍了其核心和基础的知识,目的是便于读者迅速将其投入使用,开发工程项目。需要提示的是:在项目的后期维护中,最需要注意的是索引的分析和优化。本书限于篇幅没有讲解这部分知识,读者在做项目维护的过程中应考虑这一点。

思考与练习

1.Oracle全文搜索技术可以用于哪些工程实践?

2.使用JSP+Oracle 技术,开发一套基于Web的文档管理系统。

同类推荐
  • 中国文学名著导读

    中国文学名著导读

    高岩、陆明、李松石、闫冰编著的《中国文学名著导读》是按照文学史的时间顺序架构的,体系比较严谨,选篇的版本也比较规范。在选篇上照顾到所选文章的思想性、经典性以及丰富性,考虑到教师在讲课时的拓展空间,备选课文也比较充分。赏析文章侧重编者原创,注意融入时代精神。在现当代文学的篇章里,所选篇章与赏析都比较独到。《中国文学名著导读》除做教材外,也适合一般文学爱好者自学阅读。
  • 流光·青春糖衣

    流光·青春糖衣

    收录了多篇新概念作文大赛中的一等奖作文。作者都是最具活力的90后新生写作力量。其作品文笔优美写实,见解独特,独具其自身的写作特色,是一本非常优秀的作文合集。本书不仅可以帮助初高中生提高作文水平,还可以给青春文学爱好者带去全新的阅读体验,更能从作品中体会90后的青少年的思想感悟和精神世界。
  • 钢琴上的黑白左右手

    钢琴上的黑白左右手

    本书分为十辑,收录了《安逸与压力》、《笨学生开创了新纪元》、《夺冠之本》、《享受勤奋》、《没有人不能成才》、《靠自己》等百余篇散文作品。
  • 加德纳八大智能教育法

    加德纳八大智能教育法

    加德纳认为:现有的流行于世界的智商测试已远远落后于时代。人的智能特点各不相同,开发儿童的多元智能,将使具有特点的儿童及早摆脱传统教育的束缚。人类各个领域杰出人物的诞生,在于八大智能的开发。对于儿童多元潜能的发现,是发现天才的最佳途径。这一观点引起了当代全球教育革命的浪潮,为父母与教师开发孩子及学生的智能、培育英才打开了全新的视野。
  • 学生室内外运动学习手册——教你学自行车·摩托车

    学生室内外运动学习手册——教你学自行车·摩托车

    体育运动是以身体练习为基本手段,以增强人的体质,促进人的全面发展,丰富社会文化生活和促进精神文明为目的一种有意识、有组织的社会活动。室内外体育运动内容丰富,种类繁多,主要项目有田径、球类、游泳、武术、登山、滑冰、举重、摔跤、自行车、摩托车等数十个类别。
热门推荐
  • 念念前世情

    念念前世情

    七位无敌属性max女主,被人困在游戏世界了?!哼,就凭你,老娘要逃出去,不是分分钟的事,不过嘛,逗留一下也不错的样子~
  • 天云仙路

    天云仙路

    天降怪石砸中现代小职员,在睁双眼时已然到了个仙人天上飞的世界,抱着修真长生梦的方立,以一身平平资质,从这天云洲开始,踏上茫茫修仙路……
  • 死神之烧无止境

    死神之烧无止境

    尸魂风光,流魂在外,静灵主内。望十三队舍,千奇百怪;诸队队长,各领风骚。流刃若火,山本重国,欲与零番试比高。真央内,观众多学员,分外妖娆。灵王如此多娇,引无数英雄竞折腰。惜蓝染崩玉,不敌黑崎;银城空吾,实力不足。一代天骄,友哈巴赫,没放大被一刀秒俱往矣,数风流人物,还看今朝。
  • 鬼界魔都

    鬼界魔都

    毕业后的毛馨柔,没有像家里期望的那样接管自家公司,而是自己工作在国企事业单位,因为公司意外收获了一枚玉锁,于是,一场异界的追逐围绕着这个家庭开展了。
  • 当骄傲的心遇上丑小鸭

    当骄傲的心遇上丑小鸭

    殷紫芹是个漂亮的女生,赵筱苒是个开朗的女生,她们共同的特点是,学习都很优异。可是,紫芹的成绩却总是比筱苒少一点,永远都是第二名,这使紫芹对筱苒起了嫉妒之心,把筱苒当成了敌人。而筱苒却不在意,她真心想和紫芹交朋友,在与紫芹的多次互动中,她发现,原来紫芹也是个孤独的女孩.....她们之间会发生什么呢?想知道的话,就关注此书吧!
  • 血祭苍穹

    血祭苍穹

    荒古大陆,荒古帝已经成为一个传说。“血龙锁体”一个被诅咒的家族,背负着诅咒的少年,究竟会在荒古大陆演绎出何等的风采。来吧,兄弟姐妹,老少爷们们,让我们一起雄起。
  • 幻光大陆

    幻光大陆

    前世的武学弟子,在一次大战中被捉拿,正当他绝望的时候一个神秘的黑衣人就救走了他找回希望的他,刚想到谢又被黑衣人用一把短剑将它刺死,他又失去了希望,他死了吗?
  • 复仇的世界

    复仇的世界

    故事梗概:绝境求生的希望,出卖自由,向仇人谄媚换取来生存之道,那个平凡却很爱自己的姑娘,自己回眸一眼都难以奢望的倩影。融合了某些地球人的记忆的少年,苦苦挣扎于那个昏暗的时代,他决定改变一切,向一切不平等发出复仇的挑战,努力将自己对于心爱人的誓言贯穿于天地之间。。。。。
  • The Annals

    The Annals

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 星辰驱魔师

    星辰驱魔师

    从小被老僧捡来的孤儿靠着漫画书学来的武术,却成为万众瞩目一个驱魔师,的艰辛过程。