Inserindo dados em uma tabela SQLite de um aplicativo Node.js

Resumo : neste tutorial, você aprenderá como inserir uma ou mais linhas em uma tabela SQLite a partir de uma aplicação Node.js.

Para inserir dados em uma tabela SQLite de um aplicativo Node.js, siga estas etapas:

  1. Abra uma conexão de banco de dados .
  2. Execute uma INSERTinstrução.
  3. Feche a conexão com o banco de dados.

Para demonstração, criaremos um novo banco de dados nomeado sample.dbna dbpasta.

Ao abrir uma conexão de banco de dados no modo padrão, o banco de dados será criado se não existir.

let db = new sqlite3.Database('./db/sample.db');
Linguagem de código:  JavaScript  ( javascript )

No sample.dbbanco de dados, criamos uma tabela chamada langspara armazenar linguagens de programação:

db.run('CREATE TABLE langs(name text)');
Linguagem de código:  JavaScript  ( javascript )

Você pode executar o programa para criar o sample.dbbanco de dados e langsa tabela da seguinte maneira:

const sqlite3 = require('sqlite3').verbose();

let db = new sqlite3.Database('../db/sample.db');

db.run('CREATE TABLE langs(name text)');

db.close();
Linguagem de código:  JavaScript  ( javascript )

Agora estamos prontos para inserir dados na langstabela.

Inserir uma linha em uma tabela

Para executar uma INSERTinstrução, você usa o run()método do Databaseobjeto:

db.run(sql, params, function(err){
  // 
});
Linguagem de código:  JavaScript  ( javascript )

O run()método executa uma INSERTinstrução com parâmetros especificados e posteriormente chama um retorno de chamada.

Se ocorreu um erro, você pode encontrar informações detalhadas no errargumento da função de retorno de chamada.

Caso a instrução seja executada com sucesso, o thisobjeto da função de retorno de chamada conterá duas propriedades:

  • lastIDpropriedade armazena o valor do último ID de linha inserido.
  • changespropriedade armazena as linhas afetadas pela consulta.

O insert.jsprograma a seguir ilustra como inserir uma linha na langstabela:

  const sqlite3 = require('sqlite3').verbose();

  let db = new sqlite3.Database('./db/sample.db');

  // insert one row into the langs table
  db.run(`INSERT INTO langs(name) VALUES(?)`, ['C'], function(err) {
    if (err) {
      return console.log(err.message);
    }
    // get the last insert id
    console.log(`A row has been inserted with rowid ${this.lastID}`);
  });

  // close the database connection
  db.close();
Linguagem de código:  JavaScript  ( javascript )

Vamos executar o insert.jsprograma:

>node insert.js
A row has been inserted with rowid 1
Linguagem de código:  JavaScript  ( javascript )

Funcionou como esperado.

Inserir várias linhas em uma tabela por vez

Para inserir várias linhas de uma vez em uma tabela, use a seguinte forma de INSERTinstrução:

INSERT INTO table_name(column_name)
VALUES(value_1), (value_2), (value_3),...
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para simular isso no aplicativo Node.js, primeiro precisamos construir a INSERTinstrução com vários marcadores:

INSERT INTO table_name(column_name)
VALUES(?), (?), (?),...
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Suponha que você queira inserir linhas na langstabela com os dados do seguinte languagesarray:

let languages = ['C++', 'Python', 'Java', 'C#', 'Go'];
Linguagem de código:  JavaScript  ( javascript )

Para construir a INSERTinstrução, usamos o map()método para mapear cada elemento da languagesmatriz (?)e, em seguida, unir todos os espaços reservados.

let placeholders = languages.map((language) => '(?)').join(',');
let sql = 'INSERT INTO langs(name) VALUES ' + placeholders;
Linguagem de código:  JavaScript  ( javascript )

O insert-many.jsprograma a seguir ilustra como inserir várias linhas na langstabela:

const sqlite3 = require('sqlite3').verbose();

// open the database connection
let db = new sqlite3.Database('../db/sample.db');

let languages = ['C++', 'Python', 'Java', 'C#', 'Go'];

// construct the insert statement with multiple placeholders
// based on the number of rows
let placeholders = languages.map((language) => '(?)').join(',');
let sql = 'INSERT INTO langs(name) VALUES ' + placeholders;

// output the INSERT statement
console.log(sql);

db.run(sql, languages, function(err) {
  if (err) {
    return console.error(err.message);
  }
  console.log(`Rows inserted ${this.changes}`);
});

// close the database connection
db.close();
Linguagem de código:  JavaScript  ( javascript )

Vamos executar o insert-many.jsprograma para ver como funciona.

> node insert-many.js
INSERT INTO langs(name) VALUES (?),(?),(?),(?),(?)
Rows inserted 5
Linguagem de código:  JavaScript  ( javascript )

Ele inseriu 5 linhas na langstabela, o que esperávamos.

Neste tutorial, você aprendeu como inserir uma ou mais linhas em uma tabela SQLite de um aplicativo Node.js.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *