問(wèn)題: prepareStatement LIKE在MySQL中可以輸出結(jié)果,但是用java寫(xiě)就查找不到結(jié)果。
public void getYunEventListByKw(String content) { PreparedStatement preStmt = null; ResultSet rs = null; Connection conn = null; try { conn = dbHelper.getYunshanConnection(); //**重點(diǎn)內(nèi)容** String sql = "SELECT * FROM yunshan_event WHERE event_summary LIKE ?"; preStmt = conn.prepareStatement(sql); preStmt.setString(1, "%"+content+"%"); System.out.println(content); rs = preStmt.executeQuery(); System.out.println(preStmt.toString()); //*** while (rs.next()) { int eventId = rs.getInt("id"); } } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { dbHelper.closeAll(conn, preStmt, rs); } return null; }我一直搜索不出結(jié)果,看了最后我打印出來(lái)那個(gè)最后的sql語(yǔ)句。 竟然是這個(gè)樣子:
com.mysql.jdbc.JDBC4PreparedStatement@5dbe6544: SELECT * FROM yunshan_event WHERE event_summary LIKE '%??%'原來(lái)是因?yàn)閖dbc連接的時(shí)候沒(méi)有設(shè)置utf8的編碼,所以會(huì)亂碼,一直搜索不到內(nèi)容.
String DB_URL = "jdbc:mysql://192.168.235.36:3306/fig?zeroDateTimeBehavior=round&characterEncoding=utf8";搞定。
新聞熱點(diǎn)
疑難解答
圖片精選