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:
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 .
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.
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
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
package.path
encontrar o pacote do SQLite instalado pelo LuarocksPara 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 comandolua
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 comandolua
você só poderá usar o interpretador para a versão correspondente das disponíveis ao listar esse diretório citado .
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.
db:execute
você deverá informar o comando do SQLite que deseja, pode ser: CREATE
, UPDATE
, DELETE
…