无法将行插入MySQL数据库

时间:2011-12-07 16:39:40

标签: java mysql jdbc

我有一个带有表lyrics1的数据库歌词,并且下面的代码我想在lyrics1中插入一行。

但是当我回到mysql客户端并执行describe lyrics1时,它还没有更新。

我没有错误,它连接数据库很好。至少我没有得到错误,说它无法做到。

connectToDB();

ok.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        try {

            String query = "INSERT INTO lyrics1(name, artist) values(?, ?)";
            PreparedStatement statement = connection.prepareStatement(query);
            statement.setString(1, nameOfSong.getText()); // set input parameter 2
            statement.setString(2, artist.getText());   
            ResultSet rs = statement.executeQuery("SELECT * FROM lyrics1");
            while (rs.next()){
                System.out.println(rs.getString(1));
            }
            rs.close();
            statement.close();
            connection.close();

        } catch (SQLException insertException) {
            displaySQLError(insertException);
        } 
        internalFrame.dispose();
    }
});

1 个答案:

答案 0 :(得分:4)

你永远不会真正执行INSERT语句,你只是创建它并且从不实际执行它。您正在执行SELECT但实际上没有任何内容将INSERT语句发送到服务器。

您需要先调用statement.executeUpdate()它将返回受影响的行数,大多数时候您要检查INSERT的等于1,UPDATE和DELETE的等于ZERO。