// insertStamkund takes six strings as input and calls randomNumber for an integer
  public int insertStamkund(
      String pnrParam,
      String fnameParam,
      String snameParam,
      String addrParam,
      String mailParam,
      String cellParam) {

    // Call randomNumber() and stores the value to cardParam.
    int cardParam = randomNumber(1000, 9999);

    // Set the SQL statement into the query variable
    String query =
        "INSERT INTO Stamkund (kortnummer,personnummer,förnamn,"
            + "efternamn,adress,epost,mobilnummer) VALUES (?,?,?,?,?,?,?)";

    try {
      // Create a statement associated to the connection and the query.
      // The new statement is placed in the variable stmt.
      PreparedStatement stmt = con.prepareStatement(query);

      // Provide the values for the ?'s in the SQL statement, from 1 to 7.
      stmt.setInt(1, cardParam);
      stmt.setString(2, pnrParam);
      stmt.setString(3, fnameParam);
      stmt.setString(4, snameParam);
      stmt.setString(5, addrParam);
      stmt.setString(6, mailParam);
      stmt.setString(7, cellParam);

      // Execute the SQL statement that is prepared in the variable stmt
      stmt.executeUpdate();

      // Close the variable stmt and release all resources bound to it
      stmt.close();

      // Commit the changes made to the database.
      con.commit();
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Error on Data Insert");
    }

    // Returns card number for user display
    return cardParam;
  }
  // Method for generating and returning a randomized card number in the range of 1000-9999.
  // The range can be edited in the insertStamkund method.
  public int randomNumber(int min, int max) {

    // Local variables
    String query;
    ResultSet rs;
    PreparedStatement stmt;
    int internalNumber;

    // A random number is generated in the selected range min-max (1000-9999)
    Random rand = new Random();
    internalNumber = rand.nextInt((max - min) + 1) + min;

    try {

      // Set the SQL statement into the query variable
      // We check if our generated number exists in the database.
      query = "SELECT kortnummer FROM Stamkund WHERE kortnummer = ?";
      stmt = con.prepareStatement(query);
      stmt.setInt(1, internalNumber);

      // Execute the SQL statement that is prepared in the variable stmt
      // and store the result in the variable rs.
      // If we receive a ResultSet, boolean result is set to 1, and the generated number exists.
      rs = stmt.executeQuery();
      boolean result = rs.next();

      // If result is true, we call ourselves for a new number
      if (result) {
        return randomNumber(min, max);
      }

      // Close the variable stmt and release all resources bound to it
      stmt.close();
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Data Insert error");
    }
    // If result is false, returns the unique card number
    return internalNumber;
  }