database_data.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import mysql.connector
  2. from mysql.connector import Error
  3. # 数据库配置
  4. db_config = {
  5. 'host': 'rm-bp13g3ra2f59q49xs.mysql.rds.aliyuncs.com', # 数据库主机
  6. 'database': 'ai_knowledge', # 数据库名称
  7. 'user': 'wqsd', # 用户名
  8. 'password': 'wqsd@2025' # 密码
  9. }
  10. class DatabaseHelper:
  11. def __init__(self, config=None):
  12. """ 初始化数据库连接配置 """
  13. if config is None:
  14. config = db_config
  15. self.config = config
  16. self.connection = None
  17. self.cursor = None
  18. self._connect()
  19. def _connect(self):
  20. """ 建立数据库连接 """
  21. try:
  22. self.connection = mysql.connector.connect(**self.config)
  23. if self.connection.is_connected():
  24. print("数据库连接成功")
  25. self.cursor = self.connection.cursor(dictionary=True)
  26. except Error as e:
  27. print(f"数据库连接失败: {e}")
  28. def execute_query(self, query, params=None):
  29. """
  30. 执行查询SQL语句
  31. :param query: SQL 查询语句
  32. :param params: 查询参数 (可选)
  33. :return: 查询结果
  34. """
  35. try:
  36. self.cursor.execute(query, params)
  37. return self.cursor.fetchall()
  38. except Error as e:
  39. print(f"执行查询失败: {e}")
  40. return None
  41. def execute_non_query(self, query, params=None):
  42. """
  43. 执行没有返回结果的 SQL 语句 (例如 INSERT, UPDATE, DELETE)
  44. :param query: SQL 执行语句
  45. :param params: 参数 (可选)
  46. :return: 受影响的行数
  47. """
  48. try:
  49. self.cursor.execute(query, params)
  50. self.connection.commit() # 提交事务
  51. return self.cursor.rowcount # 返回受影响的行数
  52. except Error as e:
  53. print(f"执行非查询失败: {e}")
  54. self.connection.rollback()
  55. return 0
  56. def close(self):
  57. """ 关闭数据库连接 """
  58. if self.cursor:
  59. self.cursor.close()
  60. if self.connection:
  61. self.connection.close()
  62. print("数据库连接已关闭")