【发布时间】:2021-04-09 06:20:02
【问题描述】:
我使用java jdbc连接数据库sql server,但是%%里面的问号不工作
这是我的代码:
public List<Account> findBetween(String search, int start, int size) {
try {
ArrayList<Account> list = new ArrayList<Account>();
String sql = "SELECT * FROM Account WHERE uname LIKE '%?%' ORDER BY user_id OFFSET ? ROWS FETCH NEXT ? ROWS ONLY";
Connection conn = ConnectDB.openConnection();
PreparedStatement st = conn.prepareStatement(sql);
st.setNString(1, search);
st.setInt(2, start);
st.setInt(3, size);
ResultSet rs = st.executeQuery();
System.out.println(rs.getFetchSize());
while (rs.next()) {
list.add(new Account(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getNString(4), rs.getNString(5),
rs.getNString(6), rs.getString(7), rs.getString(8), rs.getDate(9), rs.getInt(10),
rs.getBoolean(11)));
}
ConnectDB.closeConnection();
return list;
} catch (Exception e) {
e.printStackTrace();
ConnectDB.closeConnection();
return null;
}
}
【问题讨论】:
-
我找不到一个好的来源,但基本上准备好的语句参数需要是一个完整的值,所以你需要使用
LIKE ?并将%字符添加到search.