【发布时间】:2019-03-24 21:33:49
【问题描述】:
这是错误:
运行: Mon Mar 25 05:22:00 SGT 2019 警告:不建议在没有服务器身份验证的情况下建立 SSL 连接。根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 的要求,如果未设置显式选项,则默认情况下必须建立 SSL 连接。为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。您需要通过设置 useSSL=false 来显式禁用 SSL,或者设置 useSSL=true 并为服务器证书验证提供信任库。 2019 年 3 月 25 日上午 5:22:15 mypackage.profile jButton6ActionPerformed 严重:无 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'com.mysql.jdbc.JDBC42PreparedStatement@41399cae: SELECT * FROM people WHERE id' 附近使用正确的语法 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
然后这是代码:
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
PreparedStatement ps;
ResultSet rs;
String id = txtid.getText();
if (id.isEmpty()) {
JOptionPane.showMessageDialog(null, "ID field is empty");
return;
}
String sql = "SELECT * FROM persons WHERE id = "+ Integer.parseInt(id) + ";";
JOptionPane.showConfirmDialog(null,"Is this right?\n" + sql);
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery(String.valueOf(ps));
if(rs.next()){
txtln.setText(rs.getString("lastName"));
txtfn.setText(rs.getString("firstName"));
txtadrs.setText(rs.getString("address"));
txtcity.setText(rs.getString("city"));
}
} catch (SQLException ex) {
Logger.getLogger(profile.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
new menu().setVisible(true);
}
【问题讨论】: