Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL数据库错误(Java DB)_Java_Sql_Database_Javadb - Fatal编程技术网

SQL数据库错误(Java DB)

SQL数据库错误(Java DB),java,sql,database,javadb,Java,Sql,Database,Javadb,基本上我有两个类,我试图使用INSERT INTO sql语句向数据库添加一个新条目。问题是,当我按下应该发送新条目的按钮时,它会向我显示SQL,它看起来很好,但抛出一个语法错误 “分配的值的数量与指定或隐含列的数量不同:” 我很困惑,因为数据库中有7列,SQL语句插入了7个值,所以我不知道该怎么做。任何帮助都会很好 调用执行SQL的类的类的函数: public void actionPerformed(ActionEvent e) { if (e.getSource() == Sen

基本上我有两个类,我试图使用INSERT INTO sql语句向数据库添加一个新条目。问题是,当我按下应该发送新条目的按钮时,它会向我显示SQL,它看起来很好,但抛出一个语法错误

“分配的值的数量与指定或隐含列的数量不同:”

我很困惑,因为数据库中有7列,SQL语句插入了7个值,所以我不知道该怎么做。任何帮助都会很好

调用执行SQL的类的类的函数:

public void actionPerformed(ActionEvent e)
 {
    if (e.getSource() == SendMessage) { 



        String subject = (SubjectTxt.getText());
        String readID = (ID.getText()); 
        String recipient = (Recipient.getText());
        String message = (Message.getText());
        int priority = 1;
        String sender = "pj439@gre.ac.uk";
        String label = "Todo";

       //MessageData.setSubject(readID, subject);
       //MessageData.setRecipient(readID, recipient);
       //MessageData.setMessage(readID, message);
       //MessageData.setPriority(readID, 1);

        MessageData.setMessage2(readID, priority, sender , label, subject, message, recipient);

    } else if (e.getSource() == close) { 
        dispose();
    }
 }
static void setMessage2(String id, int priority, String sender, String label, String subject, String message, String recipient) {


    String updateStr = "INSERT into STUDENT.MESSAGES values '" + id + "' ,'" + 1 + "' , '" +  sender + "' , '" + label + "' , '" + subject + "' , '" + message + "' , '" + recipient + "'";
    System.out.println(updateStr);
    try {
        stmt.executeUpdate(updateStr);
    } catch (Exception e) {
        System.out.println(e);
    }
}
INSERT into STUDENT.MESSAGES values '07' ,'1' , 'pj439@gre.ac.uk' , 'Todo' , 'Work' , 'Hello ' , 'pj439@gre.ac.uk'
包含SQL的函数:

public void actionPerformed(ActionEvent e)
 {
    if (e.getSource() == SendMessage) { 



        String subject = (SubjectTxt.getText());
        String readID = (ID.getText()); 
        String recipient = (Recipient.getText());
        String message = (Message.getText());
        int priority = 1;
        String sender = "pj439@gre.ac.uk";
        String label = "Todo";

       //MessageData.setSubject(readID, subject);
       //MessageData.setRecipient(readID, recipient);
       //MessageData.setMessage(readID, message);
       //MessageData.setPriority(readID, 1);

        MessageData.setMessage2(readID, priority, sender , label, subject, message, recipient);

    } else if (e.getSource() == close) { 
        dispose();
    }
 }
static void setMessage2(String id, int priority, String sender, String label, String subject, String message, String recipient) {


    String updateStr = "INSERT into STUDENT.MESSAGES values '" + id + "' ,'" + 1 + "' , '" +  sender + "' , '" + label + "' , '" + subject + "' , '" + message + "' , '" + recipient + "'";
    System.out.println(updateStr);
    try {
        stmt.executeUpdate(updateStr);
    } catch (Exception e) {
        System.out.println(e);
    }
}
INSERT into STUDENT.MESSAGES values '07' ,'1' , 'pj439@gre.ac.uk' , 'Todo' , 'Work' , 'Hello ' , 'pj439@gre.ac.uk'
在输出框中运行的SQL:

public void actionPerformed(ActionEvent e)
 {
    if (e.getSource() == SendMessage) { 



        String subject = (SubjectTxt.getText());
        String readID = (ID.getText()); 
        String recipient = (Recipient.getText());
        String message = (Message.getText());
        int priority = 1;
        String sender = "pj439@gre.ac.uk";
        String label = "Todo";

       //MessageData.setSubject(readID, subject);
       //MessageData.setRecipient(readID, recipient);
       //MessageData.setMessage(readID, message);
       //MessageData.setPriority(readID, 1);

        MessageData.setMessage2(readID, priority, sender , label, subject, message, recipient);

    } else if (e.getSource() == close) { 
        dispose();
    }
 }
static void setMessage2(String id, int priority, String sender, String label, String subject, String message, String recipient) {


    String updateStr = "INSERT into STUDENT.MESSAGES values '" + id + "' ,'" + 1 + "' , '" +  sender + "' , '" + label + "' , '" + subject + "' , '" + message + "' , '" + recipient + "'";
    System.out.println(updateStr);
    try {
        stmt.executeUpdate(updateStr);
    } catch (Exception e) {
        System.out.println(e);
    }
}
INSERT into STUDENT.MESSAGES values '07' ,'1' , 'pj439@gre.ac.uk' , 'Todo' , 'Work' , 'Hello ' , 'pj439@gre.ac.uk'
我的7张表格用于电子邮件客户端: -身份证 -优先权 -寄件人 -标签 -主题 -信息
-收件人

永远不要将变量嵌入SQL语句中。请在查询中使用参数来执行此操作。您需要在值周围使用括号,
…value(…)
使用准备好的语句。它更安全,可读性更强。