我已将程序中的J /连接器从Connector 5.1.7更新到Connector 5.1.39,我看到选择停止工作。
挖掘更多后,我意识到只有有序的选择不起作用。如果我从sql查询中删除order by
,一切都很好。
这是我的程序
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MysqlVersion {
public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&character_set_server=utf8mb4&useSSL=false";
String user = "root";
String password = "root";
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("select * from `scripts` order by id desc");
//this returns false when order by is in the query
System.out.println(rs.next());
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(MysqlVersion.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(MysqlVersion.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
}
当System.out.println(rs.next());
'在查询中时,order by
始终会返回false。
如果我回到早期版本,一切正常。难道我做错了什么。我需要做一个特殊的设置吗?或者这是一个错误?
我正在使用MySql 5.7.14