__init__.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from .mysql_conn import MySQLConnection
  2. # 全局 MySQL 客户端实例
  3. _global_mysql_client = None
  4. def init_global_mysql_client(host: str = None, port: int = None,
  5. user: str = None, password: str = None,
  6. database: str = None, charset: str = None,
  7. pool_size: int = None, **kwargs) -> None:
  8. """
  9. 初始化全局 MySQL 客户端
  10. Args:
  11. host: MySQL 主机地址
  12. port: MySQL 端口号
  13. user: MySQL 用户名
  14. password: MySQL 密码
  15. database: 数据库名称
  16. charset: 字符集
  17. pool_size: 连接池大小
  18. **kwargs: 其他 MySQL 连接参数
  19. """
  20. global _global_mysql_client
  21. if _global_mysql_client is None:
  22. _global_mysql_client = MySQLConnection(
  23. host=host, port=port, user=user, password=password,
  24. database=database, charset=charset, pool_size=pool_size, **kwargs
  25. )
  26. def get_global_mysql_client() -> MySQLConnection:
  27. """
  28. 获取全局 MySQL 客户端实例
  29. Returns:
  30. MySQL SQL 执行器实例
  31. """
  32. global _global_mysql_client
  33. if _global_mysql_client is None:
  34. raise RuntimeError("Global MySQL client has not been initialized. Call init_global_mysql_client() first.")
  35. return _global_mysql_client
  36. def close_global_mysql_client() -> None:
  37. """
  38. 关闭全局 MySQL 客户端
  39. """
  40. global _global_mysql_client
  41. if _global_mysql_client is not None:
  42. _global_mysql_client.close()
  43. _global_mysql_client = None