我有一个带有表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();
}
});
答案 0 :(得分:4)
你永远不会真正执行INSERT
语句,你只是创建它并且从不实际执行它。您正在执行SELECT
但实际上没有任何内容将INSERT
语句发送到服务器。
您需要先调用statement.executeUpdate()
它将返回受影响的行数,大多数时候您要检查INSERT的等于1,UPDATE和DELETE的等于ZERO。