green_copper_runtime::modules::db

Module mysql

source
Expand description

§The MYSQL module

work in progress

§Example

!
async function test_mysql(){
    let mysql_mod = await import('greco://mysql');
  
    let url = "localhost";
    let port = 3306;
    let user = null;
    let pass = null;
    let dbSchema = "esses";
    let con = new mysql_mod.Connection(url, port, user, pass, dbSchema);
    // params and batches
    await con.execute("insert into table1(name, lastName) values(:name, :lastName)", {name: 'Pete', lastName: 'Peterson'}, {name: 'Andrew', lastName: 'Anderson'});

    let q1_objects = await con.query("select * from something where id > :id and age < :age", {id: 1, age: 123}, (name, age) => {
        console.log("a name = %s, age = %s", name, age);
        return {name, age};
    });
    // q1_objects is an array like [{name: 'n1', age: 21}, {name: 'n2', age: 37}, etc..]

    let transaction = await con.transaction();
    try {
        // all methods return a promise so execution never blocks
        await transaction.execute("insert into table1(name) values(:name)", {name: 'Harry'}, {name: 'Henry'});
        let ct_rows = await transaction.query("select count(*) from table1", [], (ct) => {
            return {count: ct};
        });
        await transaction.commit();
    } finally {
        // returns a promise await for error handling.
        await transaction.close();
    }
}

test_mysql().then(() => {
    console.log("done");
}).catch((ex) => {
    console.log("test failed: %s", ex);
});

Modules§

Constants§