使用LIKE和%从MySQL获取记录

时间:2014-04-26 10:15:16

标签: java mysql servlets

我有一个名为mpi的表,其中包含23列。我已经为每个列引入了带有按钮的搜索字段,用户可以在其中输入查询以使用查询

获取记录
query="select * from mpi where Genus ='"+genus+"' 

现在我想通过使用LIKE %%提供关键字来获取记录,但它不起作用而且没有提供任何记录,但如果类型键入全名,它就能正常工作。这是代码

String uname=request.getParameter("uname"); 
String full="%"+uname+"%";
dbconn=new DatabaseConnection();        
conn=dbconn.setConnection();

pstmt=conn.prepareStatement("select * from mpi where Genus LIKE ?");
pstmt.setString(1, full);
res=pstmt.executeQuery

当我使用像%keyword%这样的半关键字时,有没有人告诉我错误在哪里以及为什么我没有得到记录。

1 个答案:

答案 0 :(得分:0)

它起作用(除了缺少的括号)和准备好的陈述的方法是完全正确的。

但是我看到过这样的代码片段,并且问题始终存在变量混乱或不关闭或简单的疏忽。最好尽可能地宣布。

try (ResultSet res = pstmt.executeQuery()) {
    while (res.next()) {
        ..
    }
} // Automatically closes res.

还可以正确处理pstmt的生命周期。

相关问题