import sqlite3
class Banco_dados:
def __init__(self, nome_db="loja.db"):
self.nome_db = nome_db
self.conexao = None
def conectar(self):
if not self.conexao:
self.conexao = sqlite3.connect(self.nome_db)
print("Conexao SQLite OK")
return self.conexao
def fechar(self):
if self.conexao:
self.conexao.close()
self.conexao = None
print("Conexao SQLite fechada")
from loja_db import Banco_dados
class CriarBanco:
def __init__(self, banco_dados: Banco_dados):
self.banco_dados = banco_dados
def criar_tabela(self):
conn = self.banco_dados.conectar()
try:
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS loja (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
preco REAL NOT NULL
)
""")
conn.commit()
print("Tabela criada ou verificada com sucesso")
except Exception as e:
conn.rollback()
raise e
class Loja:
def __init__(self, nome, preco, id=None):
self.id = id
self.nome = nome
self.preco = preco
from loja import Loja
from loja_db import Banco_dados
class LojaDAO:
def __init__(self, banco_dados: Banco_dados):
self.banco_dados = banco_dados
def inserir(self, loja: Loja):
conn = self.banco_dados.conectar()
try:
cursor = conn.cursor()
cursor.execute(
"INSERT INTO loja (nome, preco) VALUES (?, ?)",
(loja.nome, loja.preco)
)
conn.commit()
except Exception as e:
conn.rollback()
raise e
def listar(self):
conn = self.banco_dados.conectar()
cursor = conn.cursor()
cursor.execute("SELECT id, nome, preco FROM loja")
registros = cursor.fetchall()
return [Loja(id=r[0], nome=r[1], preco=r[2]) for r in registros]
from loja_db import Banco_dados
from criador_bd import CriarBanco
from lojaDao import LojaDAO
from loja import Loja
def main():
banco = Banco_dados("loja.db")
criador = CriarBanco(banco)
criador.criar_tabela()
dao = LojaDAO(banco)
dao.inserir(Loja(nome="Produto Teste", preco=19.90))
dao.inserir(Loja(nome="Arroz", preco=20.00))
for loja in dao.listar():
print(loja.id, loja.nome, loja.preco)
banco.fechar()
if __name__ == "__main__":
main()