Ir al contenido principal

Ballerina en un vistazo (7)

  Cualquier lenguaje de programación moderno tiene la capacidad para la conexión a SGBD como: Oracle, PostgreSQL, MySQL, MariaDB, entre otros.

Ballerina no podía ser la excepción. Veremos como conectarnos a MariaDB, un SGBD "fork" de MySQL.

Creando la aplicación con Ballerina y MariaDB.

Empezamos creando una sencilla base de datos llamada ``cursomariadb`` y una tabla llamada ``persons``:

CREATE OR REPLACE TABLE(
   personid int,
   lastname varchar(45),
   firstname varchar(45),
   address varchar(100),
   city varchar(45)
);

Insertamos algunos valores:

INSERT INTO persons(
   personid, 
   lastname, 
   firstname, 
   address, 
   city 

) VALUES (1 , "Moreno"   , "Carmen"      , "Gonzalez Arraga 102"           , "Gotham" );



INSERT INTO persons(
   personid, 
   lastname, 
   firstname, 
   address, 
   city 

) VALUES( 2 , "Torres"   , "Jimena"      , "Lagos de Morelos no. 199"      , "Toluca"     );
INSERT INTO persons(
   personid, 
   lastname, 
   firstname, 
   address, 
   city 

) VALUES
( 3 , "Huertas"  , "Hugo Manuel" , "Terracota veinte de julio s/n" , "Cuajimalpa");

Abrimos una terminal y creamos el proyecto:

$ bal new datos-mariadb
$ cd datos-mariadb

Una vez ubicados en el directorio creado, editamos el archivo main.bal

Importamos los paquetes necesarios:

import ballerina/io;
import ballerina/sql;
import ballerinax/mysql;
import ballerinax/mysql.driver as _;

Colocamos los datos necesarios para conectarnos a la base de datos:

configurable string host = "localhost";
configurable int port = 3306;
configurable string user = "root";
configurable string password = "tupassw";
configurable string database = "cursomariadb";

La consulta SQL será sencilla, con esto obtendremos todos los datos:

SELECT * FROM persons;

Crearemos una estructura que contemple los campos de la tabla persons:

type Person record {|
    int personid;
    string lastname;
    string firstname;
    string address;
    string city;
|};

Como se puede ver, estamos homologando los campos de la tabla.

Ahora usaremos un cliente para acceder a la BD y realizar la consulta:

 mysql:Client dbClient = check new (
        host = host,
        port = port,
        user = user,
        password = password,
        database = database
    );

Con esto ejecutaremos la consulta, obtendremos los datos y al final cerraremos la conexión:

stream<Person, sql:Error?> resultStream = dbClient->query(`SELECT * FROM persons`);

    // Procesar los resultados y concatenar en una cadena
    check from Person person in resultStream
        do {
            string sb = string `ID: ${person.personid}, Nombre: ${person.firstname}, Apellido: ${person.lastname}, Dirección: ${person.address}, Ciudad: ${person.city}`;
            io:println(sb);
           
        };

    // Cerrar el stream de resultados
    check resultStream.close();

    // Cerrar el cliente de la base de datos
    check dbClient.close();

Código completo:

main.bal

import ballerina/io;
import ballerina/sql;
import ballerinax/mysql;
import ballerinax/mysql.driver as _;

configurable string host = "localhost";
configurable int port = 3306;
configurable string user = "root";
configurable string password = "tupassw";
configurable string database = "cursomariadb";

type Person record {|
    int personid;
    string lastname;
    string firstname;
    string address;
    string city;
|};

public function main() returns error? {
    io:println("\n [ Conexión a MariaDB con Ballerina ] ");

    // Crear cliente MySQL
    mysql:Client dbClient = check new (
        host = host,
        port = port,
        user = user,
        password = password,
        database = database
    );

    // Ejecutar la consulta SELECT * FROM persons
    stream<Person, sql:Error?> resultStream = dbClient->query(`SELECT * FROM persons`);

    // Procesar los resultados y concatenar en una cadena
    check from Person person in resultStream
        do {
            string sb = string `ID: ${person.personid}, Nombre: ${person.firstname}, Apellido: ${person.lastname}, Dirección: ${person.address}, Ciudad: ${person.city}`;
            io:println(sb);
           
        };

    // Cerrar el stream de resultados
    check resultStream.close();

    // Cerrar el cliente de la base de datos
    check dbClient.close();

    io:println("Consulta completada exitosamente.");
}

Compilamos y ejecutamos:

$ bal build
$ bal run

¡Hemos creado una aplicación que accede a una BD y obtiene datos de una consulta con Ballerina!

Más sobre este lenguaje en próximas entregas.

Enlaces:

https://ballerina.io/

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...