连接中的 Java SQLSyntaxError

约翰·斯诺

我正在尝试将数据库与 java 连接以执行 CRUD 操作,但每次运行时都会给出错误列表,其中还包括:
com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception

//Error Seems to be in my ArrayList Function
public ArrayList<BusSetGet> bussetgetList(){
ArrayList<BusSetGet> usersList=new ArrayList<>();
try{
Class.forName("com.mysql.jdbc.Driver");
String db_connURL= "jdbc:mysql://localhost:3306/buses";
Connection con=DriverManager.getConnection(db_connURL);
String query1="SELECT * FROM bus_crud";
PreparedStatement st=con.prepareStatement(query1);
ResultSet rs=st.executeQuery(query1);
BusSetGet users;
while(rs.next()){    
users=new BusSetGet(rs.getString("bus_type"),rs.getString("bus_ID"),rs.getInt("bus_no"));
usersList.add(users);
}
}catch (ClassNotFoundException | SQLException ex) {
        System.out.println("ERROR in ArrayList Method!!");
    }
return usersList;
}

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String query="insert into 
bus_crud(bus_type,bus_ID,bus_no)values('"+jComboBox1.getSelectedItem() +"','"+jTextField1.getText()+"','"+jTextField2.getText()+"')";
    sqlQuery(query,"Inserted");
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    String query="UPDATE `bus_crud` SET `bus_type`='"+jComboBox1.getSelectedItem() +"',`bus_ID`='"+jTextField1.getText()+"',`bus_no`='"+jTextField2.getText()+" WHERE `bus_ID = "+jTextField1.getText();
    sqlQuery(query,"Updated");       
}

//FOR SQL Query To be executed
public void sqlQuery(String query,String message)
{
Connection con=getConnection();
Statement st;
try{
st=con.createStatement();
 if(st.executeUpdate(query)==1)
 {
  //Refresh JTable
  DefaultTableModel model=(DefaultTableModel) jTable1.getModel();
  model.setRowCount(0);
  show_data_Jtable();
 JOptionPane.showMessageDialog(null,"Data"+message+"Successful");
}
else
{
 JOptionPane.showMessageDialog(null,"Data not"+message);
}
    }catch(SQLException ex) {
      Logger.getLogger(BusCRUD.class.getName()).log(Level.SEVERE, null,ex);
     }
  }

这是可能会出错的功能..

拉维

根据您的最新评论(请更新您的帖子),似乎数据库身份验证失败。您需要了解,如果您设置了一些用户名/密码来访问您的数据库并且您在创建JDBC连接时没有提供它,那么它将失败

com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: Access Denied for user '@'localhost 

因此,您需要通过<db_user_name><db_user_password>获取数据库连接实例。

Class.forName("com.mysql.jdbc.Driver");  
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/buses","<db_user_name>","<db_user_password>");

请注意,这是问题之一,您的代码中还有许多其他语法问题,@Anuruddha 指出其中之一。您需要更正所有SQLs. 你应该练习使用PreparedStatement

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章