登陆注册
7538600000026

第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的文档管理系统。

同类推荐
  • 提高文章写作能力

    提高文章写作能力

    青少年是祖国的未来和希望,培养综合素质高的接班人是我们教育的天职。当今社会,我们国家在现代化发展的道路上正面临着极大的机遇和巨大的挑战。要应对挑战就必须使未来的建设者们具备全面的素质;不但要有自然科学的知识,同时也必须掌握人文科学的知识。只有具备综合素质的人,才能称得上是合格的人才。一个民族的全体国民要想全面提高人文素质,就必须以提高综合素质为突破口。本选题是为青少年量身定做的综合素质提高自助读本。
  • 影的告别

    影的告别

    文学作品是以语言为手段塑造形象来反映社会生活、表达作者思想感情的一种艺术,是人生的一面镜子。好的文学作品具有潜移默化的巨大作用,它能够开阔视野,增长知识,陶冶我们的情操。
  • 青春思绪

    青春思绪

    《最适合青少年的哲理美文:青春思绪》所选文章打破了纯文学界限,不仅精选了中外著名作家的有关名篇,也精选了哲学家、成功家、思想家、政治家以及科学家等著名人士的哲理美文,这些文章都具有深刻的思想内涵和丰富的人生体验,那闪光的语言,精辟睿智,鞭辟入里,简直是句句经典,字字珠玑,闪耀着智慧的光芒和精神的力量,具有很强的哲理性和启迪性。
  • 新课标课外快乐阅读丛书——快乐心灵的战争故事

    新课标课外快乐阅读丛书——快乐心灵的战争故事

    快乐阅读,陶冶心灵,这对于提高广大中小学生的阅读写作能力,培养语文素养,促进终身学习等都具有深远的意义。现代中小学生不能只局限于校园和课本,应该广开视野,广长见识,广泛了解博大的世界和社会,不断增加丰富的现代社会知识和世界信息,才能有所精神准备,才能迅速地长大,将来才能够自由地翱翔于世界的蓝天。
  • 品牌资产提升策略

    品牌资产提升策略

    本书主要研究了品牌代言人对品牌资产的影响机制问题,通过基于消费者心智的品牌资产和基于消费者-品牌关系的品牌资产两个视角,对这一问题展开研究,并着重在品牌关系视角下,探讨了品牌代言人可信度特质对品牌资产的作用机制。
热门推荐
  • 邪魅公主的复仇计划

    邪魅公主的复仇计划

    她们是在仇恨中生活的人。她们在一夜之间从天使堕落成恶魔。她们是为复仇而活,在复仇的中途中她们遇到了各自的真名天子,她们能否把握住爱情呢?详情请看书中
  • 邪王的懒妃

    邪王的懒妃

    懒人系列终回本:常言,偷得浮生半日懒。当不能偷得浮生又想懒时怎么办?当然是光明正大地懒啦!从小懒到大的庄书兰就是这样想的!当前世成为记忆时,庄书兰更是决定将这懒人做到底。管他冷嘲热讽也好,闲言碎语也罢,她庄书兰不会因此而改变!且看懒人如何笑傲官场沉浮,冷看朝野纷乱!————情景一:“美男,来,给本姑娘笑一个!”一手托起某男精致的下巴,拇指轻刮着脸颊,“啧啧,这肌肤,比姐姐我的还要好!哎!平日里用的是哪个牌子的保养品啊?”……某男呆状,第一次有种叫耻辱情绪袭上了心头——他居然被一个还未并笄的小女孩子给调戏了!情景二:“跟了本宫,他日你就是一国之母,光宗耀祖!”某男拦下某女,半带着威胁地喝着。“光宗耀祖这件事,不归臣管,你去找别人吧!”轻弹去不知何时落在肩膀上的树叶儿,微微一笑,“时辰不早了,臣得回府休息了!”情景三:“你想从这游戏中退出?”媚眼一抛,却让人不寒而颤。“我还有权力说不吗?”某女惨淡一笑,带着狡黠,“既然是你将我带入这游戏中,你怎么可以置身事外?所以,我们成亲吧!”情景四:“……新娘请下轿!”第一声,无人答应……“请新娘下轿!”第二声,还是无人答应……“请新娘子下轿!”直到第三声时,轿里忽地传来慵懒的声音,“呀!我怎么睡着了?四儿,现在什么时辰?为何迎亲的轿子还不来?”————〖精采多多,敬请期待。〗————懒人系列:总裁的懒妻帝君的懒后懒凰天下风流佳人系列:风流女画师新坑:轻松+现代+都市+网游+青梅+竹马=恋上恶男友情链接:逍遥王爷的穿越妃本色出演绝焰煞神
  • 容爷您夫人又闯祸了

    容爷您夫人又闯祸了

    【1v1,甜宠,“先婚后爱”,星际,he】容神帝不近女色,是星际中公认的;容神帝俊美无双,是星际中公认的。无数花季少女都为见他一次真容,绞尽脑汁,费尽心思,地毯式搜索与之相关的资料,想要讨得神帝欢心的同时,顺便坐上神后的宝座。结果,突然有一天这位爷突然就结婚了?夫人还是个爱闯祸的小机灵鬼?好像还是一纸婚书就把人家姑娘绑来了?“没有我的允许,你别想拿到离婚协议书。”容淳然沉着张脸坐在殷笙凝面前。殷笙凝苦着张脸:“嘤嘤嘤,容爷,我到底是招你惹你哪了?”——————————————殷·小机灵鬼·笙凝:我,我真是太难了。容·大尾巴狼·淳然:不,你只是太甜了。
  • 紫炎武尊

    紫炎武尊

    八方山河吾为尊,万千世界炎称帝。一朝风云,一世帝王。今吾以千般浩劫,练就金身,万般磨练,成就毅魂。尝尽人间百般难,不成游龙便化骨。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 战争的荣耀

    战争的荣耀

    一生戎马,他回头展望,却是尸山血海,枯骨无数。他本是一平凡之人,享受生活,不知战争是何,然而世界的残酷,却总是让人身不由己。无数的磨难,无数的事实,让他明白,只有战争才能结束战争,只有自己强大才不会任人欺凌!于是,他踏上了一条鲜血淋漓的道路,在与无数名将的交手中成长,在剑与杀戮之中展开征服!耶萨米尔人的内战,崛起的东方帝国,幅员辽阔的游牧部族,野心勃勃的圣教联盟,在逆境中求生的北方蛮族···一切的一切,等你来看!
  • 长亭竹歌

    长亭竹歌

    惊才绝艳的小厨娘竟也是修仙的好料子,可是修仙路漫漫,舒曼瑶又会有怎样的际遇呢?写文新手,佛系更新
  • 突然我就有了许多超能力

    突然我就有了许多超能力

    我叫余枫,那天另一个我找到了我,他附身在我身上,从此我获得了许多超能力…
  • 篮坛之巅峰

    篮坛之巅峰

    重生了,我竟然成了“八贤王”。当然不是宋朝的。重生了,我竟然成了“汤普森”,当然不是勇士神射。我去我竟然成了特里斯坦·汤普森。看哥如何一步步走向篮坛之巅
  • 无相神帝

    无相神帝

    陈宇身为华夏国龙组队长,在对阵岛国顶级天忍和米国基因战士之后,生死魂穿异世。看陈宇怀揣诸多绝世神功如何驰骋异界,广收小弟,泡尽美眉!