Compatibilidad con SQL en NCache

En escenarios complejos de la vida real, su aplicación a menudo necesita obtener datos basados ​​en atributos particulares en lugar de buscar a través de la clave principal. Consultar sus datos usando SQL le facilita la recuperación de datos de su base de datos según su lógica personalizada en tiempo de ejecución.

NCache admite un mecanismo de consulta SQL que le permite buscar en su caché de acuerdo con un criterio determinado y devolver el conjunto de resultados requerido. NCache utiliza un lenguaje de consulta muy parecido al lenguaje estructurado de SQL nativo, lo que facilita la consulta de los datos indexados en caché.

 

métodos de consulta

NCache utiliza una interfaz de consulta similar a la interfaz ADO.NET para admitir varios métodos de consulta para buscar o eliminar datos de la memoria caché. Estos son algunos de los métodos de consulta más importantes admitidos en NCache.

  • Ejecutar Lector se utiliza para buscar datos y devolver pares clave-valor. Al utilizar el método ExecuteReader, puede especificar si desea que solo se devuelvan las claves o tanto las claves como los datos asociados (ya sea en su conjunto o en fragmentos).
  • 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);
    }
  • ExecuteNonQueryExecuteNonQuery se emplea al eliminar entradas utilizando sentencias SQL. Como resultado, devuelve el número de filas eliminadas.
  • Ejecutar Escalar normalmente se usa para operaciones de recuento y agregación donde la consulta necesita devolver un valor único.
 

Proyecciones SQL

NCache le permite especificar columnas para proyectar en su consulta SQL. A continuación se mencionan las proyecciones básicas y más comúnmente utilizadas admitidas en NCache.

  • *: cuando se usa en una consulta, devuelve los valores de todos los atributos indexados del objeto especificado definido en el momento de la configuración.
  • $VALOR$ : cuando se usa en una consulta, le devuelve la clave con el objeto completo que contiene atributos indexados y no indexados.
  • Funciones agregadas: estas funciones incluyen funciones como SUM(), COUNT(), MIN/MAX(), etc. Puede utilizar funciones agregadas con cualquier combinación de otras proyecciones SQL proporcionadas.
  • SELECT COUNT(*) FROM FQN.Product WHERE UnitsInStock > ?

Consulte Búsqueda SQL de objetos para obtener más información.

 

Operadores varios de SQL

Estos operadores se utilizan y reutilizan en toda la base de datos SQL para procesar y manipular datos. NCache admite varios operadores SQL que le permiten obtener el resultado deseado de manera eficiente. Estas funciones son:

  • AGRUPAR POR: devuelve el valor agrupando todas las claves que se encuentran bajo el criterio dado.
  • ORDENAR: devuelve el valor en forma ordenada.
  • Fecha y hora: busca en el caché una fecha u hora particular.
  • 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.");
    }
 

Operadores SQL en consulta

Los operadores de SQL son palabras clave reservadas en la cláusula WHERE para realizar operaciones lógicas y de comparación. NCache le brinda el soporte de los siguientes operadores SQL para consultar sus datos de acuerdo con condiciones personalizadas.

  • EN: Esta operación ayuda a buscar en la caché todos los atributos proporcionados. De manera similar, tienes el operador NOT IN que busca atributos distintos a los proporcionados en la cláusula.
  • SELECT ProductName, UnitsAvailable From FQN.Product WHERE Category IN ('Beverages', 'Confections')
  • ME GUSTA: Esta operación busca patrones específicos en una columna. El operador LIKE admite dos comodines:
    • *: un sustituto de cero o más caracteres en la cadena.
    • ? : un sustituto de un solo carácter en una cadena.
    • Del mismo modo, tienes la DIFERENTE A operador.

¿Qué hacer a continuación?

Revisar NCache Caracteristicas
Descargar NCache
Solicite una demostración EN VIVO personalizada
© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.