import sqlite3
from todoItem import TodoItem
# TODO: Implementiere die TodoDao-Klasse für CRUD-Operationen
class TodoDao:
def __init__(self, db_file):
self.conn = sqlite3.connect(db_file)
self.cursor = self.conn.cursor()
def create_table(self):
self.cursor.execute('''DROP TABLE IF EXISTS todo_items''')
self.cursor.execute('''CREATE TABLE IF NOT EXISTS todo_items (item_id INTEGER PRIMARY KEY, title TEXT, is_completed BOOLEAN)''')
self.conn.commit()
def add_item(self, todo_item):
self.cursor.execute("INSERT INTO todo_items (title, is_completed) VALUES (?, ?)", (todo_item.title, todo_item.is_completed))
self.conn.commit()
def get_item(self, item_id):
self.cursor.execute("SELECT * FROM todo_items WHERE item_id = ?", (item_id,))
row = self.cursor.fetchone()
if row:
return TodoItem(row[0], row[1], row[2])
return None
def get_all_items(self):
self.cursor.execute("SELECT * FROM todo_items")
rows = self.cursor.fetchall()
todo_items = [TodoItem(row[0], row[1], row[2]) for row in rows]
return todo_items
def update_item(self, todo_item):
self.cursor.execute("UPDATE todo_items SET title = ?, is_completed = ? WHERE item_id = ?", (todo_item.title, todo_item.is_completed, todo_item.item_id))
if self.cursor.rowcount > 0:
self.conn.commit()
return True
return False
def delete_item(self, item_id):
self.cursor.execute("DELETE FROM todo_items WHERE item_id = ?", (item_id,))
if self.cursor.rowcount > 0:
self.conn.commit()
return True
return False
def close(self):
self.conn.close()