SQL-Unterstützung in NCache

In realen, komplexen Szenarien muss Ihre Anwendung häufig Daten basierend auf bestimmten Attributen abrufen, anstatt den Primärschlüssel zu durchsuchen. Durch das Abfragen Ihrer Daten mithilfe von SQL können Sie zur Laufzeit einfacher Daten aus Ihrer Datenbank abrufen, die auf Ihrer benutzerdefinierten Logik basieren.

NCache unterstützt einen SQL-Abfragemechanismus, mit dem Sie Ihren Cache nach einem bestimmten Kriterium durchsuchen und die erforderliche Ergebnismenge zurückgeben können. NCache verwendet eine Abfragesprache, die der nativen strukturierten SQL-Sprache sehr nahe kommt, was es Ihnen leicht macht, Ihre indizierten, zwischengespeicherten Daten abzufragen.

 

Abfragemethoden

NCache verwendet eine der ADO.NET-Schnittstelle ähnliche Abfrageschnittstelle, um verschiedene Abfragemethoden zum Suchen oder Löschen von Daten aus dem Cache zu unterstützen. Hier sind einige der wichtigsten Abfragemethoden, die in unterstützt werden NCache.

  • ExecuteReader wird verwendet, um Daten zu durchsuchen und Schlüssel-Wert-Paare zurückzugeben. Bei Verwendung der ExecuteReader-Methode können Sie angeben, ob nur die Schlüssel oder sowohl die Schlüssel als auch die zugehörigen Daten (entweder als Ganzes oder in Blöcken) zurückgegeben werden sollen.
  • string query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
    var queryCommand = new QueryCommand(query);
    queryCommand.Parameters.Add("ProductID",50000);
    ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand, false, 0);
    if (reader.FieldCount > 0)
    {
        while (reader.Read())
        {
            string result = reader.GetValue<string>(0);
        }
    }
    String query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
    QueryCommand queryCommand = new QueryCommand(query);
    HashMap<String, Object> parameters = new HashMap<>();
    parameters.put("ProductID", 50000);
    queryCommand.getParameters().putAll(parameters);
    CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
    if (cacheReader.getFieldCount() > 0) {
        while (cacheReader.read()) {
            cacheReader.getString(0);
    }
  • AusführenNonQuery wird beim Löschen von Einträgen mittels SQL-Anweisungen eingesetzt. Als Ergebnis wird die Anzahl der gelöschten Zeilen zurückgegeben.
  • AusführenSkalar wird normalerweise für Zähl- und Aggregationsvorgänge verwendet, bei denen die Abfrage einen einzelnen Wert zurückgeben muss.
 

SQL-Projektionen

NCache ermöglicht Ihnen die Angabe von Spalten, die anhand Ihrer SQL-Abfrage projiziert werden sollen. Nachfolgend sind die grundlegenden und am häufigsten verwendeten Projektionen aufgeführt, die unterstützt werden NCache.

  • *: Wenn es in einer Abfrage verwendet wird, gibt es die Werte aller indizierten Attribute des angegebenen Objekts zurück, das zum Zeitpunkt der Konfiguration definiert wurde.
  • $WERT$ : Bei Verwendung in einer Abfrage erhalten Sie den Schlüssel mit dem gesamten Objekt zurück, das sowohl indizierte als auch nicht indizierte Attribute enthält.
  • Aggregatfunktionen: Zu diesen Funktionen gehören Funktionen wie SUM(), COUNT(), MIN/MAX() usw. Sie können Aggregatfunktionen mit jeder Kombination anderer bereitgestellter SQL-Projektionen verwenden.
  • SELECT COUNT(*) FROM FQN.Product WHERE UnitsInStock > ?

Beziehen auf SQL-Suche nach Objekt um mehr zu erfahren.

 

Verschiedene SQL-Operatoren

Diese Operatoren werden in der gesamten SQL-Datenbank zum Verarbeiten und Bearbeiten von Daten verwendet und wiederverwendet. NCache unterstützt verschiedene SQL-Operatoren, mit denen Sie effizient das gewünschte Ergebnis erzielen können. Diese Funktionen sind:

  • GRUPPIERE NACH: gibt den Wert zurück, indem alle Schlüssel gruppiert werden, die unter das angegebene Kriterium fallen.
  • SORTIEREN NACH: gibt den Wert in sortierter Form zurück.
  • Datetime: Durchsucht den Cache nach einem bestimmten Datum oder einer bestimmten Uhrzeit.
  • string query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
    var queryCommand = new QueryCommand(query);
    DateTime orderDate = new DateTime(2022, 01, 01);
    queryCommand.Parameters.Add("OrderDate", orderDate);
    ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand);
    if (reader.FieldCount > 0)
    {
        while (reader.Read())
        {
            int orderID = reader.GetValue<int>("OrderID");
            Console.WriteLine($"Order: {orderID} was placed on 1st January, 2022.");
        }
    }
    else
    {
        Console.WriteLine($"No orders were placed on 1st January 2022.");
    }
    
    String query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
    QueryCommand queryCommand = new QueryCommand(query);
    
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date orderDate;
    orderDate = sdf.parse("2022-01-01");
    HashMap<String, Object> parameters = new HashMap<>();
    parameters.put("OrderDate", orderDate);
    queryCommand.getParameters().putAll(parameters);
    
    CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
    if (cacheReader.getFieldCount() > 0) {
        while (cacheReader.read()) {
    
            int orderID = cacheReader.getInt(cacheReader.getOrdinal("OrderID"));
            System.out.println("Order: " + orderID + " was placed on 1st January, 2022.");
        }
    } else {
        System.out.println("No orders were placed on 1st January 2022.");
    }
 

SQL-Operatoren in der Abfrage

SQL-Operatoren sind reservierte Schlüsselwörter in der WHERE-Klausel, um logische Operationen und Vergleichsoperationen auszuführen. NCache bietet Ihnen die Unterstützung der folgenden SQL-Operatoren, um Ihre Daten nach benutzerdefinierten Bedingungen abzufragen.

  • IN: Dieser Vorgang hilft beim Durchsuchen des Caches nach allen bereitgestellten Attributen. Ebenso gibt es den NOT IN-Operator, der nach anderen Attributen als den in der Klausel bereitgestellten sucht.
  • SELECT ProductName, UnitsAvailable From FQN.Product WHERE Category IN ('Beverages', 'Confections')
  • MÖGEN: Dieser Vorgang sucht nach bestimmten Mustern in einer Spalte. Der LIKE-Operator unterstützt zwei Platzhalter:
    • *: ein Ersatz für null oder mehr Zeichen in der Zeichenfolge.
    • ? : ein Ersatz für ein einzelnes Zeichen in einer Zeichenfolge.
    • Ebenso haben Sie die NICHT WIE Betreiber.

Was macht man als nächstes?

Bewertung NCache Eigenschaften
Herunterladen NCache
Fordern Sie eine personalisierte LIVE-Demo an
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.