StringBuffer sb = new StringBuffer()
sb.append("select * from a where 1=1")
if(!"".equals("a") || null != a){
sb.append(" and a = " + a)
}
就像这样来根据不同条件查询
lucene是一个公用的全文索引组件,它的目标是把各种各样格式的数据转化成lucene特有的索引文件格式,这样才能通过lucene的高速检索机制进行全文检索。你的数据来源可以是关系数据库,可以是word、execl、txt文档,可以是html网页,对于这些数据源,你必须将它们内部的数据读取出来,并封装成lucene的document实例,之后让lucene帮你构建索引。
举个例子:你的有一个用户数据库,里面存储了几十万的用户信息,你现在要对这个数据库进行全文索引,那么你要做的事情是:
1.写一段传统的JDBC程序,讲每条的用户信息从数据库读取出来
2.针对每条用户记录,建立一个lucene document
Document doc = new Document()
并根据你的需要,将用户信息的各个字段对应luncene document中的field 进行添加,如:
doc.add(new Field("NAME","USERNAME", Field.Store.YES,Field.Index.UN_TOKENIZED))
然后将该条doc加入到索引中, 如: luceneWriter.addDocument(doc)
这样就建立了lucene的索引库
3.编写对索引库的搜索程序(看lucene文档),通过对lucene的索引库的查找,你可以快速找到对应记录的ID
4.通过ID到数据库中查找相关记录
上面阐述了lucene的大体用法,不知道是不是说的很清楚。
我这里有个现成的数据库连接类先配个数据源
import java.sql.*
public class DB{
Connection con
Statement stt
private void begin()
{
if(con!=null||stt!=null)
{
this.closs()
}
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
con = DriverManager.getConnection("jdbc:odbc:数据源名")
stt = con.createStatement()
}
public Resultset qu(String sql)
{
this.begin()
return stt.executeQuery(sql)
}
public boolean cun(String sql)
{
this.begin()
return stt.execute(sql)
}
public void closs()
{
stt.close()
con.close()
}
}
要用的时候 DB a = new DB()
a.qu("select * from 你的表名 where 你表中书名的那一列的列名 like '%书名%'")
%是通配符 就是说如果书名是"12ab45" 你输入"ab 也能查询到" 如果不需要可以去掉%
a.qu()
返回一个ResultSet
你可以创建一个数组
String[][] b = new String[返回的Result的条数][JTable中需要显示的列数量]
用new JTable(String[][],String[])的方法来构造这个表吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)