private void insertService(@Nonnull final String subdomain, @Nullable final String description, final boolean isHidden) {
        Connection con = null;
        PreparedStatement pstmt = null;
        final long serviceID = SequenceManager.nextID(JiveConstants.MUC_SERVICE);
        try {
            con = DbConnectionManager.getConnection();
            pstmt = con.prepareStatement(CREATE_SERVICE);
            pstmt.setLong(1, serviceID);
            pstmt.setString(2, subdomain);
            if (description != null) {
                pstmt.setString(3, description);
            }
            else {
                pstmt.setNull(3, Types.VARCHAR);
            }
            pstmt.setInt(4, (isHidden ? 1 : 0));
            pstmt.executeUpdate();
            Log.debug("Inserted MUC service '{}' with database ID {}", subdomain, serviceID);
        }
        catch (SQLException e) {
            Log.error("A database exception occurred while trying to insert service '{}' to the database.", subdomain, e);
        }
        finally {
            DbConnectionManager.closeConnection(pstmt, con);
        }
    }
Inserts a new MUC service into the database.

@param subdomain Subdomain of new service.
@param description Description of MUC service. Can be null for default description.
@param isHidden True if the service should be hidden from service listing.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/MultiUserChatManager.java