Como Conectar ao SQLite com Lua

Passo à passo desde instalação até conexão ao banco de dados.


Como Conectar ao SQLite com Lua


Fazer conexão com banco de dados em especial o SQLite é fundamental para desenvolver aplicativos locais e até mesmo online.

Nós possuímos um artigo completo de uso do SQLite que pode ser consultado no link abaixo:

Como utilizar o SQLite

Também possuímos um guia completo de utilização de Lua para iniciantes nesse link .

Nesse artigo vamos ver como conectar ao SQLite usando Lua usando um passo à passo desde instalação até conexão ao banco de dados.

Para isso vamos usar como referência o Ubuntu 21.04, mas você pode alterar nomes de pacotes, caminhos de diretórios conforme sua distribuição ou sistema operacional .


Instalação

1. Pacotes necessários

Antes de qualquer coisa vamos instalar as dependências necessárias

sudo apt update
sudo apt install sqlite3 libsqlite3-dev lua5.1 lua5.4 luarocks

Observação: Mesmo que você já tenha instalado, recomendo reinstalar, para isso o parâmetro: --reinstall

Alguns nomes de pacotes podem ser diferentes na sua distro, use o search do seu gerenciador de pacotes para os nomes correspondentes.

2. Verifique se ambos estão funcionando normalmente:

Verificar comando e versão.

lua -v
#Lua 5.1.2  Copyright (C) 1994-2020 Lua.org, PUC-Rio
luarocks --version
#/usr/bin/luarocks 2.4.2
#LuaRocks main command-line interface

Altere o interpretador para 5.1 modificando o link simbólico do seu interpretador

sudo ln -sf /usr/bin/lua5.1 /etc/alternatives/lua-interpreter

Se você está em outra distribuição ou versão do Ubuntu, crie um link simbólico diretamente, ex.: sudo ln -sf /usr/bin/lua5.1 /usr/bin/lua


3. Agora vamos instalar o LuaSQL com o Luarocks

sudo luarocks install luasql-sqlite3

Verifique se foi instalado normalmente listando com luarocks

luarocks list

A saída similar será:

Installed rocks:
----------------

luasql-sqlite3
   2.6.0-1 (installed) - /usr/local/lib/luarocks/rocks

Ou seja, listou o luasql-sqlite3 normalmente e o arquivo sqlite3.so está no caminho: /usr/local/lib/luarocks/rocks


4. Agora vamos tornar possível o package.path encontrar o pacote do SQLite instalado pelo Luarocks

Para isso crie um link simbólico com o comando abaixo:

sudo ln -s /usr/local/lib/lua /usr/lib/lua

OBSERVAÇÃO

Se quando você rodar esse comando: ls /usr/local/lib/lua se a saída não for 5.1 você terá de alterar o link simbólico do comando lua para a versão que aparecer conforme fizemos no passo 3, se aparecer mais de um não haverá problemas, mas se não existir o número da versão do seu comando lua você só poderá usar o interpretador para a versão correspondente das disponíveis ao listar esse diretório citado .


Testando

Para testar vamos usar um banco de dados pronto para teste que eu criei e para obtê-lo basta fazer o download com wget com o comando abaixo:

wget -q https://git.io/litelua.db

Agora vamos criar o arquivo database.lua com o código Lua abaixo e depois vamos explicar algumas partes do mesmo:

local driver = require('luasql.sqlite3')
local env = driver.sqlite3()
local db = env:connect('./litelua.db')

local results = db:execute[[
  SELECT * FROM example;
]]

local id,mail,url,lang,name = results:fetch()
while id do
  print(id..' | '..mail..' | '..url..' | '..lang ..' | '..name)
  id,mail,url,lang,name = results:fetch()
end

results:close()

db:close()
env:close()

A saída deverá retornar os dados dos campos da tabela informada.

  • Em db:execute você deverá informar o comando do SQLite que deseja, pode ser: CREATE, UPDATE, DELETE
  • As variáveis possuem quase os mesmos nomes das colunas, mas isso não é uma regra.

Veja também

20 Livros sobre Linguagem SQL que você deveria ler


Links úteis


lua sqlite


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!