deno_mysql
MySQL database driver for Deno.
On this basis, there is also an ORM library: Deno Simple Orm
欢迎国内的小伙伴加我专门建的 Deno QQ 交流群:698469316
TODO
- Connecting to database
- Retring
- Timeout
- Basic login authentication
- Simple queries (no arguments)
- Parsing data types
- Queries with parameters
- Close connection
- Connection pool
- Transaction
- Test case
API
connect
import { Client } from "https://deno.land/x/mysql/mod.ts";
const client = await new Client().connect({
hostname: "127.0.0.1",
username: "root",
db: "dbname",
password: "password"
});
connect pool
Create client with connection pool.
pool size is auto increment from 0 to pool
import { Client } from "https://deno.land/x/mysql/mod.ts";
const client = await new Client().connect({
hostname: "127.0.0.1",
username: "root",
db: "dbname",
pool: 3, // pool size
password: "password"
});
create database
await client.execute(`CREATE DATABASE IF NOT EXISTS enok`);
await client.execute(`USE enok`);
create table
await client.execute(`DROP TABLE IF EXISTS users`);
await client.execute(`
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
created_at timestamp not null default current_timestamp,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`);
insert
let result = await client.execute(`INSERT INTO users(name) values(?)`, [
"manyuanrong"
]);
console.log(result);
// { affectedRows: 1, lastInsertId: 1 }
update
let result = await client.execute(`update users set ?? = ?`, ["name", "MYR"]);
console.log(result);
// { affectedRows: 1, lastInsertId: 0 }
delete
let result = await client.execute(`delete from users where ?? = ?`, ["id", 1]);
console.log(result);
// { affectedRows: 1, lastInsertId: 0 }
query
const username = "manyuanrong";
const users = await client.query(
`select * from users where username="${username}"`
);
const queryWithParams = await client.query(
"select ??,name from ?? where id = ?",
["id", "users", 1]
);
console.log(users, queryWithParams);
transaction
const users = await client.transcation(async conn => {
await conn.excute(`insert into users(name) values(?)`, ["test"]);
return await conn.query(`select ?? from ??`, ["name", "users"]);
});
console.log(users.length);
close
await client.close();