个人认为: 可以这样做!只可能所有的逻辑都包括!先从页面上获取文本框的内容! 然后对其调用split()方法!等到数组:array如果长度等于1:只有一种组合: SQL:select * from book where press like '%"+array[0]+"%' or author like '"%+array[0]+%"' or name like '"+array[0]+"'; 如果等于2:6种组合! SQL:select * from book where press like '%"+array[0]+"%' and author like '%"+array[1]+"%' union all select * from book where press like '%"+array[1]+"%' and author like '%"+array[0]+"%' union all select * from book where press like '%"+array[0]+"%' and name like '%"+array[1]+"%' union all select * from book where press like '%"+array[1]+"%' and name like '%"+array[0]+"%' union all select * from book where author like '%"+array[0]+"%' and name like '%"+array[1]+"%' union all select * from book where author like '%"+array[1]+"%' and name like '%"+array[0]+"%' 同理等于3:也是6种组合。 不知道能不能满足你的要求!
先把你输入的内容分开来 比如:“Java程序设计 孙鑫 电子工业” 分成: String bookname="Java程序设计"; String writer="孙鑫"; String publish="电子工业";然后 select * from book where bookname like '%'+bookname+'%' and writer like '%'+writer+'%' and publish like '%'+publish+'%' 如果没有的话默认为空,因为like %%满足所有情况
可以这样做!只可能所有的逻辑都包括!先从页面上获取文本框的内容!
然后对其调用split()方法!等到数组:array如果长度等于1:只有一种组合:
SQL:select * from book where press like '%"+array[0]+"%' or author like '"%+array[0]+%"' or name like '"+array[0]+"';
如果等于2:6种组合!
SQL:select * from book where press like '%"+array[0]+"%' and author like '%"+array[1]+"%'
union all
select * from book where press like '%"+array[1]+"%' and author like '%"+array[0]+"%'
union all
select * from book where press like '%"+array[0]+"%' and name like '%"+array[1]+"%'
union all
select * from book where press like '%"+array[1]+"%' and name like '%"+array[0]+"%'
union all
select * from book where author like '%"+array[0]+"%' and name like '%"+array[1]+"%'
union all
select * from book where author like '%"+array[1]+"%' and name like '%"+array[0]+"%'
同理等于3:也是6种组合。
不知道能不能满足你的要求!
建议在前台页面上面放置一个选择框和一个信息框
选择框内分按作者、按出版社、按书名以及模糊搜索
另一信息框内填写关键词在后台接收到请求,如果是按作者或按出版社或名称,直接sql like关键字查找相应字段就行如果是模糊搜索,通过split("")方法按空格分隔关键字,如果使用jdbc,就是用立刻关键字查找简介字段,如果使用hibernate推荐使用hibernate search中的fullcontext进行全文关键字检索
这技术不是一下两下就说的清楚的啊!
不过,这样很慢用搜索引擎会快
有一个问题:如果有个出版社,孙鑫出版社
输入孙鑫,
结果:孙鑫的书籍和孙鑫出版社出版的书?
有一个问题:如果有个出版社,孙鑫出版社
输入孙鑫,
结果:孙鑫的书籍和孙鑫出版社出版的书?
比如:“Java程序设计 孙鑫 电子工业” 分成:
String bookname="Java程序设计";
String writer="孙鑫";
String publish="电子工业";然后
select * from book where bookname like '%'+bookname+'%' and writer like '%'+writer+'%' and publish like '%'+publish+'%'
如果没有的话默认为空,因为like %%满足所有情况