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。
我正在尝试使用 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。