String sql="SELECT * FROM NewsTable WHERE (newsText LIKE '%?%') AND (newsType = ?) OR (newsTitle LIKE '%?%') AND (newsType = ?)";
String text1="'%"+newstext+"%'";
pstmt.setString(1, text1);
pstmt.setString(2, newsid);
pstmt.setString(3, text1);
pstmt.setString(4, newsid);
执行到3的时候 告诉我数据越界。。怎么解决!
String text1="'%"+newstext+"%'";
pstmt.setString(1, text1);
pstmt.setString(2, newsid);
pstmt.setString(3, text1);
pstmt.setString(4, newsid);
执行到3的时候 告诉我数据越界。。怎么解决!
试试!
改为
String sql = "SELECT * FROM NewsTable WHERE (newsText LIKE '%'||?'%') AND (newsType = ?) OR (newsTitle LIKE '%'||?'%') AND (newsType = ?)";String text1=newstext; pstmt.setString(1, text1);
pstmt.setString(2, newsid);
pstmt.setString(3, text1);
pstmt.setString(4, newsid);
String sql="SELECT * FROM NewsTable WHERE (newsText LIKE ?) AND (newsType = ?) OR (newsTitle LIKE ?) AND (newsType = ?)";
String text1="'%"+newstext+"%'";
pstmt.setString(1, text1);
pstmt.setString(2, newsid);
pstmt.setString(3, text1);
pstmt.setString(4, newsid);
String text1="'%"+newstext+"%'";
pstmt.setString(1, text1);
我这样写都查询不出来 感觉还是 like后面的东西 在数据库那里没有正确的 执行到。。不出错误,就是什么也查询不出来。
就好了,因为你前面已经有一个了,所以加上之后就会多出来一个导致你的数组越界