输入整数时,Integer不会在SQL中保存

时间:2016-07-30 06:13:57

标签: java mysql integer

enter image description here我是Java程序员。我是Java的新手。我在数据库保存方面遇到了问题。这是我的代码:

from django.forms import ModelForm
from models import commentData


class CommentForm(ModelForm):
    class Meta:
        model = commentData #Your model name created to store comment's data
        fields = [
                  "username", 
                  "content",

                  ]

这是我遇到的错误:

JButton btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
    try{
        String query = "INSERT INTO roomlist (RoomNumber, RoomType, RoomCost, Limit, Description) values (?,?,?,?,?)";
        PreparedStatement pst = conn.prepareStatement(query);

        pst.setString(1, roomNoTextField.getText());
        pst.setString(2, roomTypeTextField.getText());
        pst.setInt(3, Integer.parseInt(roomCostTextField.getText())); //<--This is my problem
        pst.setInt(4, Integer.parseInt(limitTextField.getText()));//<--This is my problem
        pst.setString(5, descriptionTextArea.getText());

        pst.execute();

        JOptionPane.showMessageDialog(null, "Data Saved");

        }catch(Exception e){
            e.printStackTrace();
        }
    }
});
btnSave.setBounds(32, 300, 98, 26);
contentPane.add(btnSave);

我的问题是当我在文本框中输入一个整数时,它不会起作用。我应该使用什么代码来保存数据库中的整数?

非常感谢你的帮助。 :)

编辑:表结构在这里。

3 个答案:

答案 0 :(得分:2)

您的屏幕截图给出答案(!)

您的专栏名称&#34;限制&#34;与SQL保留字冲突。试试这个:

INSERT INTO roomlist (RoomNumber, RoomType, RoomCost, 
                      `Limit`, Description) values (?,?,?,?,?)

(不同的SQL方言有不同的方法来转义关键字。这就是MySQL方式......)

或者更好的是,更改列名称。

答案 1 :(得分:0)

正如您在屏幕截图中看到的,列名称&#39;限制&#39;是一个关键字,所以它可能是一个问题。请将您的列名更改为其他名称。

答案 2 :(得分:0)

嘿,你有一个严重的错误,

INSERT INTO roomlist (RoomNumber, RoomType, RoomCost, Limit, Description) values (?,?,?,?,?)

众所周知,我们可以使用关键字作为列,例如限制顺序。因此,当您插入空间列表时,限制列将被视为关键世界限制

解决这个问题的方法很简单,更改专栏并记住不要再使用关键词作为专栏