Java SQLSyntaxError正在连接中

Java SQLSyntaxError正在连接中,java,mysql,swing,jdbc,arraylist,Java,Mysql,Swing,Jdbc,Arraylist,我试图用java连接数据库以执行CRUD操作,但每次运行它时,都会给出错误列表,其中还包括: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception //Error Seems to be in my ArrayList Function public ArrayList<BusSetGet> bussetgetList(){ ArrayList<BusSetGet> usersList=new ArrayLis

我试图用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);
     }
  }
//错误似乎在我的ArrayList函数中
公共ArrayList bussetgetList(){
ArrayList usersList=新的ArrayList();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
String db_connURL=“jdbc:mysql://localhost:3306/buses";
Connection con=DriverManager.getConnection(db_connURL);
字符串query1=“选择*自总线积垢”;
准备好的报表st=con.准备好的报表(查询1);
结果集rs=st.executeQuery(查询1);
BusSetGet用户;
while(rs.next()){
users=new-BusSetGet(rs.getString(“总线类型”)、rs.getString(“总线ID”)、rs.getInt(“总线编号”);
usersList.add(用户);
}
}catch(ClassNotFoundException | SQLException ex){
System.out.println(“ArrayList方法出错!!”;
}
返回用户列表;
}
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
String query=“插入到
总线crud(总线类型、总线ID、总线号)值(“+jComboBox1.getSelectedItem()+”、“+jTextField1.getText()+”、“+jTextField2.getText()+”)”;
sqlQuery(查询,“插入”);
}                                        
私有void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
String query=“UPDATE`bus\u crud`SET`bus\u type`='”+jcombox1.getSelectedItem()+“,`bus\u ID`='”+jTextField1.getText()+“,`bus\u no`='”+jTextField2.getText()+”其中`bus\u ID=“+jTextField1.getText();
sqlQuery(查询,“更新”);
}
//用于执行SQL查询
公共void sqlQuery(字符串查询、字符串消息)
{
Connection con=getConnection();
报表st;
试一试{
st=con.createStatement();
if(st.executeUpdate(查询)==1)
{
//刷新JTable
DefaultTableModel=(DefaultTableModel)jTable1.getModel();
model.setRowCount(0);
显示数据表();
showMessageDialog(null,“数据”+消息+“成功”);
}
其他的
{
showMessageDialog(null,“数据不是”+消息);
}
}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 
因此,您需要传递
以获取数据库连接实例

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

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

您需要更好地调试代码,并告诉我们问题出在哪里。我没有看到任何错误,但是你也没有向我们展示
sqlQuery
方法的代码。@TimBiegeleisen我刚刚编辑了代码并发布了sqlQuery函数also@JohnSnow发布完整的stacktrace。@Ravi通过JOptionPane和它显示错误says@JohnSnow你不能发布stacktrace,那么,我们无法告诉您确切的问题。非常感谢,但据我所知,prepareStatement是用于动态数据访问的,所以我如何以及在哪里在代码中使用prepare语句?internet上有许多教程,请使用它们了解