INSERT语句无法运行MySQL Java

时间:2016-01-22 22:44:30

标签: java mysql

我正在创建一个播放列表应用程序,我正在尝试使用HikariCP通过MySQL进行存储,我之前已经实现了SQLite并且它工作正常但是在将驱动程序实现更改为MySQL时,数据似乎并未存储。我已经尝试了多种方法来确定代码返回的内容,但我无法理解为什么数据没有被存储。

以下是数据库结构的create table语句:

CREATE TABLE IF NOT EXISTS playlists (playlist_id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, playlist_name VARCHAR(32))
CREATE TABLE IF NOT EXISTS songs (song_id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, artist_name VARCHAR(32), track_name VARCHAR(32), release_date VARCHAR(16), genre VARCHAR(16), album_name VARCHAR (32), youtube_url VARCHAR(2083), playlist VARCHAR (32))

将本地缓存卸载到数据库中的方法:

public static void offloadCache () {
    for (Playlist p : playlists) {
        storePlaylist(p);

        for (Song s : p.getPlaylistList()) {
            // Stores the song in the database
            storeSong(s, p.getName());
        }
    }
}

使用该方法,如果我运行System.out.println(p.getName());对于播放列表的名称,它返回预期的名称。存储方法如下:

private static void storePlaylist (Playlist p) {
    PreparedStatement ps = null;
    Connection c = null;

    try {
        c = ds.getConnection();
        ps = c.prepareStatement("INSERT INTO playlists (playlist_name) VALUES (?)");
        ps.setString(1, p.getName());
        ps.executeUpdate();
    } catch (SQLException ignored) {
    } finally {
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException ignored) {}
        }

        if (c != null) {
            try {
                c.close();
            } catch (SQLException ignored) {}
        }
    }
}

我在该商店播放列表方法中放了多行进行调试,虽然在检查数据库时没有存储播放列表但是所有行都已到达,可能的问题是什么?这可能是一个小错误,我只是忽略了,因为它与SQLite驱动程序一起正常工作,现在不能使用MySQL驱动程序。

0 个答案:

没有答案