SQL数据库错误(Java DB)
基本上我有两个类,我试图使用INSERT INTO sql语句向数据库添加一个新条目。问题是,当我按下应该发送新条目的按钮时,它会向我显示SQL,它看起来很好,但抛出一个语法错误 “分配的值的数量与指定或隐含列的数量不同:” 我很困惑,因为数据库中有7列,SQL语句插入了7个值,所以我不知道该怎么做。任何帮助都会很好 调用执行SQL的类的类的函数: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
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(…)
使用准备好的语句。它更安全,可读性更强。