gpt4 book ai didi

java - 通过在 jtextfield 中获取字符串,在 java 中使用 LIKE 选择所有数据

转载 作者:行者123 更新时间:2023-11-29 07:24:42 25 4
gpt4 key购买 nike

try{

String Sql ="Select * from learners_info where lrn LIKE %?% ";
pst=conn.prepareStatement(Sql);
pst.setString(1, txtSearch.getText());
System.out.print(pst);
rs = pst.executeQuery();



DefaultTableModel ts = (DefaultTableModel)tableSearch.getModel();
ts.setRowCount(0);


while (rs.next()){
Object searchTable[] = {
rs.getInt("lrn"),
rs.getString("learner_firstname"),
rs.getString("learner_middlename"),
rs.getString("learner_lastname"),
};
ts.addRow(searchTable);
}
}

catch(Exception e){
JOptionPane.showMessageDialog(null, "Invalid info idnumber");
e.printStackTrace();
}
//
finally {
try {
rs.close();
}
catch (Exception e) {
e.printStackTrace();
}

try {
pst.close();
} catch (Exception e) {
e.printStackTrace();
}

try {

} catch (Exception e) {
e.printStackTrace();
}
}

问题是我找不到合适的字符串来从文本字段中获取 SQL 中的 LIKE 术语

**使用这个字符串**

String Sql ="Select * from learners_info where lrn LIKE %?% ";

我似乎得到了这个错误:


java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3813)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3795)
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4616)

如果我试试这个字符串

String Sql ="Select * from learners_info where lrn LIKE '%'?'%' ";

我使用 system.out 打印了正在使用的字符串类型,它显示了这一点。

com.mysql.jdbc.JDBC4PreparedStatement@414a0b8f: Select * from learners_info where lrn LIKE '%''1411237''%'

这个查询有效,但它似乎没有返回任何值

抱歉,我对 Java 数据库还是个新手。

最佳答案

从您的 SQL 字符串中删除“%”部分。试试这个:

String Sql ="Select * from learners_info where lrn LIKE ?";

然后尝试在您的 PreparedStatement setString() 方法中传递 %s 和您的 String 值

关于java - 通过在 jtextfield 中获取字符串,在 java 中使用 LIKE 选择所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54483504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com