public boolean addSong(MusicObject music) throws SQLException {
			
			if (connection == null) {
				connection = getConnection();
			}
			
			if (addSongStmt == null) {
				addSongStmt = connection.prepareStatement("INSERT INTO org.MUSIC" +
						"(song_name," +
						"file_name," +
						"folder_path," +
						"folder_hash, "+
						"file_hash," +
						"file_size," +
						"album," +
						"artist," +
						"song_year," +
						"track_on_album, "+
						"modified" +
						")VALUES (" +
						"?, "+ // song_name
						"?, "+ // file_name
						"?, "+ // folder_path
						"?, "+ // folder hash
						"?, "+ // file_hash
						"?, "+ // file_size
						"?, "+ // album
						"?, "+ // artist
						"?, "+ // song_year
						"?, "+ // track_on_album
						"? "+ // modified
						")");
			}
		
		try {
			log.info("Adding: " + music.getSongName() + " : " + music.getLastModified());
			
			addSongStmt.setString(1, music.getSongName());
			addSongStmt.setString(2, music.getFileName());
			addSongStmt.setString(3, music.getFolderPath());
			addSongStmt.setString(4, Base64.encodeBase64String(Utils.getDigest(music.getFolderPath())));
			addSongStmt.setString(5, music.getMD5String());
			addSongStmt.setInt(6, music.getSize());
			addSongStmt.setString(7, music.getAlbum());
			addSongStmt.setString(8, music.getArtist());
			addSongStmt.setInt(9, music.getYear());
			addSongStmt.setInt(10, music.getTrackOnAlbum());
			addSongStmt.setTimestamp(11, Utils.javaDateToSQL(music.getLastModified()));
			
			boolean ret = addSongStmt.executeUpdate() == 1;
			connection.commit();
			
			return ret;
		} catch (Exception e) {
			log.log(Level.SEVERE, "The following error occurred when trying to add a song: " + e.getMessage(),e);
			closeAll();
			throw new SQLException(e.getMessage());
		} finally {
		}
	}