我有连接到MySQL并检索数据的Java代码。我有以下代码,并且始终给出SQLSyntaxErrorException并说第1行存在语法错误。我不明白为什么。请帮我。我可以确定名称正确。


private void saveDetails(int slct) throws SQLException {

        if(slct == ADD_NEW_RECORD) {
            String query = "INSERT INTO emp(?,?,?,?,?,?,?,?,?,?,?,?,?,?) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement st = Main.db.con.prepareStatement(query);
            st.setString(1, "epfno");
            st.setString(2, "fname");
            st.setString(3, "lname");
            st.setString(4, "sex");
            st.setString(5, "nid");
            st.setString(6, "address");
            st.setString(7, "birthday");
            st.setString(8, "position");
            st.setString(9, "tpno");
            st.setString(10, "fathername");
            st.setString(11, "mothername");
            st.setString(12, "m_status");
            st.setString(13, "comments");
            st.setString(14, "photo_id");
            st.setInt(15, emp.epfno);
            st.setString(16, emp.fname);
            st.setString(17, emp.lname);
            st.setInt(18, emp.sex);
            st.setString(19, String.copyValueOf(emp.nid));
            st.setString(20, emp.address);
            st.setDate(21, emp.birthday);
            st.setString(22, emp.position);
            st.setString(23, emp.tpno);
            st.setString(24, emp.fathername);
            st.setString(25, emp.mothername);
            st.setBoolean(26, emp.m_status);
            st.setString(27, emp.comments);
            st.setString(28, emp.photo_id);

            st.execute();
        }
    }

最佳答案

您正在尝试将字段名称设置为参数-您不能这样做。您只能将值指定为参数。因此,基本上您的前14个setString调用应该消失,并且应该将这些字段名称放在SQL中:

String query = "INSERT INTO emp(epfno, fname, lname, sex, nid, address, "
             + "birthday, position, tpno, fathername, mothername, m_status, "
             + "comments, photo_id) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

st.setInt(1, emp.epfno);
st.setString(2, emp.fname);
st.setString(3, emp.lname);
// etc

关于java - SQL语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7273636/

10-12 14:17