|
|
import mysql.connector
|
|
|
from mysql.connector import Error
|
|
|
|
|
|
class Warehouse:
|
|
|
def __init__(self):
|
|
|
self.conn = self.create_connection()
|
|
|
self.cursor = self.conn.cursor()
|
|
|
self.create_table_if_not_exists()
|
|
|
|
|
|
def create_connection(self):
|
|
|
"""创建数据库连接"""
|
|
|
try:
|
|
|
connection = mysql.connector.connect(
|
|
|
host='your_host', # 替换为你的数据库主机名
|
|
|
database='inventory_db', # 使用之前创建的数据库名
|
|
|
user='your_user', # 替换为你的数据库用户名
|
|
|
password='your_password' # 替换为你的数据库密码
|
|
|
)
|
|
|
print("成功连接到MySQL数据库")
|
|
|
return connection
|
|
|
except Error as e:
|
|
|
print(f"连接失败: {e}")
|
|
|
return None
|
|
|
|
|
|
def create_table_if_not_exists(self):
|
|
|
"""如果表不存在,则创建表"""
|
|
|
query = """
|
|
|
CREATE TABLE IF NOT EXISTS items (
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
item_name VARCHAR(255) NOT NULL,
|
|
|
quantity INT NOT NULL
|
|
|
)
|
|
|
"""
|
|
|
try:
|
|
|
self.cursor.execute(query)
|
|
|
self.conn.commit()
|
|
|
print("items表已存在或已成功创建")
|
|
|
except Error as e:
|
|
|
print(f"创建表时出错: {e}")
|
|
|
|
|
|
# ...(保留原有的add_item, remove_item等方法逻辑,但内部实现改为使用SQL操作)
|
|
|
|
|
|
def add_item_to_db(self, item_name, quantity):
|
|
|
"""向数据库添加商品"""
|
|
|
query = "INSERT INTO items (item_name, quantity) VALUES (%s, %s)"
|
|
|
values = (item_name, quantity)
|
|
|
try:
|
|
|
self.cursor.execute(query, values)
|
|
|
self.conn.commit()
|
|
|
print(f"已添加 {quantity} 个 {item_name} 到数据库。")
|
|
|
except Error as e:
|
|
|
print(f"插入数据时出错: {e}")
|
|
|
|
|
|
# ...(类似地,修改remove_item, update_stock, check_stock等方法以使用SQL查询和操作)
|
|
|
|
|
|
def close_connection(self):
|
|
|
"""关闭数据库连接"""
|
|
|
if self.conn.is_connected():
|
|
|
self.cursor.close()
|
|
|
self.conn.close()
|
|
|
print("MySQL连接已关闭")
|
|
|
|
|
|
# 记得在程序结束时调用close_connection来关闭数据库连接。 |