MySql插入查询

LaĦ*_*ąną 0 java mysql swing prepared-statement

我试图使用ArrayList将数据插入表中,然后我收到了这样的错误消息:

  com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(orderid, customername, item, qty, amount, total) VALUES(3,'lahiru','chick ' at line 1
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
Run Code Online (Sandbox Code Playgroud)

我以不同的方式尝试,但是这是我的用于插入值的方法.

 public class Order {
 Connection con;
    public void passingValuesToDB(ArrayList<OrderModel> list) {
     try {
        con = new DBconnector().connect();
        String sql = "insert into order(orderid, customername, item, qty, amount, total) VALUES(?,?,?,?,?,?)";

        PreparedStatement ps = con.prepareStatement(sql);
        for(int i=0;i<list.size();i++){
            ps.setInt(1, list.get(i).getOrderid());
            ps.setString(2, list.get(i).getCustomername());
            ps.setString(3, list.get(i).getItem());
            ps.setDouble(4, list.get(i).getQty());
            ps.setDouble(5, list.get(i).getAmount());
            ps.setDouble(6, list.get(i).getTotal());
            ps.addBatch();
        }
        ps.execute();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }

    }
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题.

这是我的MySQL表

Jen*_*ens 5

Order是一个关键字,如果你想将它用作表名,你必须使用反引号来逃避它.

String sql = "insert into `order`(orderid, customername, item, qty, amount, total) VALUES(?,?,?,?,?,?)";
Run Code Online (Sandbox Code Playgroud)

我认为更好的解决方案是重命名表.