无法向MySQL数据库插入行

3

我有一个数据库歌词,其中包含一个名为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个回答

4
您从未实际执行INSERT语句,您只是创建它但从未实际执行它。您正在执行一个SELECT,但实际上没有发送INSERT语句到服务器。
您需要先调用statement.executeUpdate(),它将返回受影响的行数,大多数情况下,您希望检查这是否等于1(对于INSERT),或大于零(对于UPDATE和DELETE)。

我执行了它,只是没有显示代码的其余部分,本质上我调用了这段代码所在的方法。 - Jad J
你所发布的代码基本上存在缺陷,你需要发布完整的代码或者至少是正确的代码,这段代码在逻辑上没有任何正确性。 - user177800

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接