import sqlite3 class ProductDatabase: def __init__(self, db_file): """Initialize the ProductDatabase with a connection to the SQLite database.""" self.conn = sqlite3.connect(db_file) def add_product(self, product): """Add a new product to the products table.""" sql = "INSERT INTO products (name, price, quantity) VALUES (?, ?, ?)" try: c = self.conn.cursor() c.execute(sql, product) self.conn.commit() return c.lastrowid except sqlite3.Error as e: print(e) def get_product_by_id(self, product_id): """Retrieve a product by its ID.""" sql = "SELECT * FROM products WHERE id = ?" try: c = self.conn.cursor() c.execute(sql, (product_id,)) return c.fetchone() except sqlite3.Error as e: print(e) return None def get_all_products(self): """Retrieve all products.""" sql = "SELECT * FROM products" try: c = self.conn.cursor() c.execute(sql) return c.fetchall() except sqlite3.Error as e: print(e) return [] def update_product(self, product_id, product_data): """Update a product's information.""" sql = "UPDATE products SET name = ?, price = ?, quantity = ? WHERE id = ?" try: c = self.conn.cursor() c.execute(sql, (*product_data, product_id)) self.conn.commit() except sqlite3.Error as e: print(e) def delete_product(self, product_id): """Delete a product by its ID.""" sql = "DELETE FROM products WHERE id = ?" try: c = self.conn.cursor() c.execute(sql, (product_id,)) self.conn.commit() except sqlite3.Error as e: print(e) def main(): database = "db/shop.db" product_db = ProductDatabase(database) # delete all products for product in product_db.get_all_products(): product_db.delete_product(product[0]) # name, price, quantity products = [("Apel", 2.5, 5), ("Banana", 1.5, 10), ("Orange", 3.2, 7)] for product in products: product_db.add_product(product) products = product_db.get_all_products() print("All products:") for product in products: print(product) # name, price, quantity product_data = ("Orange", 3.0, 5) product_db.update_product(3, product_data) product = product_db.get_product_by_id(1) print("Updated product:") print(product) product_db.delete_product(2) print("Product deleted") products = product_db.get_all_products() print("All products:") for product in products: print(product) if __name__ == "__main__": main()