· 10 years ago · Sep 28, 2016, 10:22 AM
1# coding: utf-8
2
3import sqlite3 as db
4
5
6class TarefaDAOImp:
7 _sql_create_table = 'CREATE TABLE IF NOT EXISTS tarefas (id, nome)'
8 _sql_create_tarefa = 'INSERT INTO tarefas (id, nome) VALUES (?,?)'
9 _sql_read_tarefa = 'SELECT * FROM tarefas WHERE id=?'
10 _sql_read_all_tarefas = 'SELECT * FROM tarefas'
11 _sql_update_tarefa = 'UPDATE tarefas SET nome=? WHERE id=?'
12 _sql_delete_tarefa = 'DELETE FROM tarefas WHERE id=?'
13
14 def __init__(self):
15 self._conn = db.connect('todo-list.db')
16 self._c = self._conn.cursor()
17 self._c.execute(self._sql_create_table)
18 self._conn.commit()
19
20 def __del__(self):
21 self._conn.close()
22
23 def create(self, tarefa):
24 self._c.execute(self._sql_create_tarefa, (tarefa.id, tarefa.nome))
25
26 def read(self, id):
27 self._c.execute(self._sql_read_tarefa, (id,))
28 return self._c.fetchone()
29
30 def readAll(self):
31 self._c.execute(self._sql_read_all_tarefas)
32 return self._c.fetchall()
33
34 def update(self, tarefa):
35 self._c.execute(self._sql_update_tarefa, (tarefa.nome, tarefa.id))
36
37 def delete(self, id):
38 self._c.execute(self._sql_delete_tarefa, (id,))
39
40
41class Tarefa:
42 def __init__(self, id, nome):
43 self._id = id
44 self._nome = nome
45
46 @property
47 def id(self):
48 return self._id
49
50 @property
51 def nome(self):
52 return self._nome
53
54 @nome.setter
55 def nome(self, nome):
56 self._nome = nome
57
58 def __str__(self):
59 return '<Tarefa: {}>'.format(self._nome)
60
61
62
63if __name__ == '__main__':
64 t1 = Tarefa(1, 'Ir ao mercado')
65 t2 = Tarefa(2, 'Fazer a janta')
66 t3 = Tarefa(3, 'Ler um bom livro')
67 t4 = Tarefa(4, 'Dormir')
68
69 dao = TarefaDAOImp()
70
71 dao.create(t1)
72 dao.create(t2)
73 dao.create(t3)
74 dao.create(t4)
75
76 print(dao.read(t2.id))
77
78 t3.nome = 'Estudar Python'
79 dao.update(t3)
80 print(dao.read(t3.id))
81
82 dao.delete(t2.id)
83 print(dao.readAll())