sqlite3删除数据所在id的一行数据,__self__构造一个类,通过输入的数据删除一行数据,并更新数据
时间: 2024-05-06 15:22:07 浏览: 18
以下是一个Python类,可以用于删除SQLite3数据库中特定id的一行数据,并更新数据库:
```python
import sqlite3
class SQLiteManager:
def __init__(self, db_name):
self.db_name = db_name
self.conn = sqlite3.connect(self.db_name)
self.c = self.conn.cursor()
def delete_data_by_id(self, table_name, id):
self.c.execute(f"DELETE FROM {table_name} WHERE id=?", (id,))
self.conn.commit()
print(f"{self.c.rowcount} row(s) deleted from {table_name} with id={id}")
def update_data(self, table_name, id, column_name, new_value):
self.c.execute(f"UPDATE {table_name} SET {column_name}=? WHERE id=?", (new_value, id))
self.conn.commit()
print(f"{self.c.rowcount} row(s) updated in {table_name} with id={id}")
def __del__(self):
self.conn.close()
```
这个类有三个方法:
1. `delete_data_by_id(table_name, id)`:删除特定id的一行数据。
2. `update_data(table_name, id, column_name, new_value)`:更新特定id行的某个列的值。
3. `__del__()`:在对象被销毁时关闭数据库连接。
以下是一个使用示例:
```python
db = SQLiteManager("mydatabase.db")
db.delete_data_by_id("users", 2)
db.update_data("users", 1, "name", "John")
del db
```
这个示例中,我们首先创建了一个SQLiteManager对象,并连接到一个名为"mydatabase.db"的数据库。然后,我们使用`delete_data_by_id()`方法删除了名为"users"的表中id为2的一行数据。接着,我们使用`update_data()`方法将名为"users"的表中id为1的行的"name"列的值更新为"John"。最后,我们使用`del`语句删除了SQLiteManager对象,这会自动调用`__del__()`方法并关闭数据库连接。