MySql 插入查询

MySql Insert Query

我正在尝试使用 ArrayList 将数据插入 table,然后我收到如下错误消息:

  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)

我尝试了不同的方式,但 gp 不对 这是我用于插入值的方法。

 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();
    }

    }

谁能帮我解决这个问题。

Order 是一个 keyword,如果您想将它用作 table 名称,则必须使用反引号将其转义。

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

我认为更好的解决方案是重命名 table。