/** * Insert a sample into the Samples database. * * @param conn * @param fingerprint * @return The sample ID of the inserted sample. * @throws SQLException */ private static Integer insertSample(Connection conn, Fingerprint fingerprint) throws SQLException { PreparedStatement insertSample = conn.prepareStatement(insertSampleStr, Statement.RETURN_GENERATED_KEYS); int index = 1; insertSample.setString(index, fingerprint.getIpAddress()); ++index; insertSample.setString(index, fingerprint.getUser_agent()); ++index; insertSample.setString(index, fingerprint.getAccept_headers()); ++index; insertSample.setString(index, fingerprint.getPlatform()); ++index; insertSample.setString(index, fingerprint.getPlatformFlash()); ++index; insertSample.setString(index, fingerprint.getPluginDetails()); ++index; if (fingerprint.getTimeZone() != null) { insertSample.setInt(index, fingerprint.getTimeZone()); } else { insertSample.setNull(index, java.sql.Types.INTEGER); } ++index; insertSample.setString(index, fingerprint.getScreenDetails()); ++index; insertSample.setString(index, fingerprint.getScreenDetailsFlash()); ++index; insertSample.setString(index, fingerprint.getLanguageFlash()); ++index; insertSample.setString(index, fingerprint.getFonts()); ++index; insertSample.setBoolean(index, fingerprint.isCookiesEnabled()); ++index; insertSample.setString(index, fingerprint.getSuperCookie()); ++index; insertSample.setString(index, fingerprint.getDoNotTrack()); ++index; if (fingerprint.getClockDifference() != null) { insertSample.setLong(index, fingerprint.getClockDifference()); } else { insertSample.setNull(index, java.sql.Types.BIGINT); } ++index; insertSample.setString(index, fingerprint.getDateTime()); ++index; insertSample.setString(index, fingerprint.getMathTan()); ++index; insertSample.setBoolean(index, fingerprint.isUsingTor()); ++index; if (fingerprint.getAdsBlocked() != null) { insertSample.setBoolean(index, fingerprint.getAdsBlocked()); } else { insertSample.setNull(index, java.sql.Types.BOOLEAN); } ++index; insertSample.setString(index, fingerprint.getCanvas()); ++index; insertSample.setString(index, fingerprint.getWebGLVendor()); ++index; insertSample.setString(index, fingerprint.getWebGLRenderer()); insertSample.execute(); ResultSet rs = insertSample.getGeneratedKeys(); Integer sampleID = null; if (rs.next()) { sampleID = rs.getInt(1); } rs.close(); insertSample.close(); return sampleID; }