Dav*_*ell 6 java mysql sql jdbc
我在mySQL数据库中有一个预定义的表:

我正在努力将从用户输入的数据保存到数据库,但我似乎无法保存在数据库中的任何数据.使用以下代码,我试图更新数据库的第一行(ID:1到OTHER 2:0).我究竟做错了什么?
private java.sql.Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
private String url = "jdbc:mysql://localhost:8889/deliveryEarn";
private String user = "root";
private String password = "root";
try {
con = DriverManager.getConnection(url, user, password);
Statement st = (Statement) con.createStatement();
st.executeUpdate("INSERT INTO incomeCalc " + "VALUES (3, 75, 6, 25, 18.50)");
con.close();
}
catch (SQLException ex) {
Logger lgr = Logger.getLogger(deliveryMain.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
Run Code Online (Sandbox Code Playgroud)
我认为它不起作用,因为值的数量小于表中的列数.您需要做的是指定列的名称以匹配您的值的数量.
INSERT INTO incomeCalc VALUES (3, 75, 6, 25, 18.50) // error
// the only way this will work is when you have only 5 columns in
// your table but in your case you have 7 that is why it will not work
Run Code Online (Sandbox Code Playgroud)
它应该是
INSERT INTO incomeCalc(specify columns here to the values bound to)
VALUES (3, 75, 6, 25, 18.50)
Run Code Online (Sandbox Code Playgroud)
可以用两种形式编写INSERT INTO语句.
第一个表单不指定要插入数据的列名,只指定其值:
INSERT INTO table_name
VALUES (value1, value2, value3,...)
Run Code Online (Sandbox Code Playgroud)
第二种形式指定列名和要插入的值:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Run Code Online (Sandbox Code Playgroud)