Java 使用SQlite在整个表中搜索关键字

Java 使用SQlite在整个表中搜索关键字,java,sql,sqlite,Java,Sql,Sqlite,使用关键字搜索数据库: 是否有一种方法可以查询SQLite数据库的整个表以查找匹配的单词。我试图在关键字JTextField中放置一个单词,搜索整个作业表并返回包含匹配单词的行。每一行代表一个唯一的作业 我认为这种下面剪开的结构不会达到效果 SELECT * FROM Job WHERE Job MATCH 'Microsoft'; 有什么简单快捷的建议吗 看来,只要是全文搜索表,就可以使用您建议的语法: 你可能应该读一下这本书。请注意,这些是“虚拟”表,因此不以相同的方式使用数据库文件-这

使用关键字搜索数据库:

是否有一种方法可以查询SQLite数据库的整个表以查找匹配的单词。我试图在关键字
JTextField
中放置一个单词,搜索整个
作业
表并返回包含匹配单词的行。每一行代表一个唯一的作业

我认为这种下面剪开的结构不会达到效果

SELECT * FROM Job WHERE Job MATCH 'Microsoft';

有什么简单快捷的建议吗

看来,只要是全文搜索表,就可以使用您建议的语法:

你可能应该读一下这本书。请注意,这些是“虚拟”表,因此不以相同的方式使用数据库文件-这可能不是您想要的,但它符合您要查找的语法。链接的SQLite页面有很好的描述。请注意,FTS模块是可选的额外模块,可能未安装


只要使用占位符,就不必担心SQL注入攻击。请看第二个答案和代码片段。实际上,您在语句中放置了一个
,然后将要替换的字符串作为参数提供给查询函数。这应该可以为您进行SQL转义。

我不知道sqlite,但在mysql中,我们有全文搜索,用作

从表中选择*将(名称)与('value')匹配

看看sqlite中是否有全文搜索,我找到了这个链接,验证一下


我认为您遗漏了一点,我不是要查询一列,而是要查询整个表。我也不希望sql注入攻击,所以pst.setString(1,text.getText())会与itOK一起工作,很抱歉造成误解。我认为没有简单的方法,除非您查询所有列(
,如“%X%”或“%Y%”或…
)。如果您事先不知道列,我想可能会有一种从模式中提取信息的方法,但这并不“简单”。sql语句不执行抛出的异常,尝试了您提供的第一个链接中的全文想法。我认为fts3几乎具有所有相同的功能,只是取决于安装了哪一个。这不是一项容易的任务。也许这些链接可以帮助你。和。