访问数据库无法执行 SQL LIKE
Posted
技术标签:
【中文标题】访问数据库无法执行 SQL LIKE【英文标题】:access database cannot execute SQL LIKE 【发布时间】:2017-07-02 00:14:28 【问题描述】:我无法从我的数据库中查询记录,并收到“UCAExc:::4.0.2 Invalid argument in JDBC call: parameter index out of range: 1”错误消息
这是如何引起的,我该如何解决?
public void query()
String name = name_tt.getText();
DefaultTableModel model= new DefaultTableModel();
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(0, 283, 555, 212);
contentPane.add(scrollPane);
table = new JTable(model);
scrollPane.setViewportView(table);
model.addColumn("ID");
model.addColumn("IDs");
model.addColumn("Name");
try
PreparedStatement pst = con.prepareStatement("SELECT * FROM TEST
WHERE IDs LIKE '?*' ");
pst.setString(1, name);
ResultSet rs = pst.executeQuery();
while(rs.next())
model.addRow(new Object[]rs.getInt(1),rs.getString(2),rs.getInt(3));
catch(Exception e)
System.out.println(e.getMessage());
;
【问题讨论】:
【参考方案1】:你需要做的
PreparedStatement pst = con.prepareStatement("SELECT * FROM TEST WHERE IDs LIKE ?");
pst.setString(1, name + "*");
ResultSet rs = pst.executeQuery();
这样,参数占位符?
是基本SQL 语句的一部分,而不是SQL 语句中字符串文字 的一部分。
【讨论】:
以上是关于访问数据库无法执行 SQL LIKE的主要内容,如果未能解决你的问题,请参考以下文章
sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbnam