db_manager.py
1.03 KB
import pymysql
from pymysql.cursors import DictCursor
class DatabaseManager:
_instance = None
_connection = None
_config = None
def __new__(cls):
if cls._instance is None:
cls._instance = super(DatabaseManager, cls).__new__(cls)
return cls._instance
@classmethod
def initialize(cls, config):
"""初始化数据库配置"""
cls._config = config
@classmethod
def get_connection(cls):
"""获取数据库连接"""
if cls._connection is None or not cls._connection.open:
if cls._config is None:
raise ValueError("数据库未初始化,请先调用initialize方法设置配置")
cls._connection = pymysql.connect(
**cls._config,
cursorclass=DictCursor
)
return cls._connection
@classmethod
def close(cls):
"""关闭数据库连接"""
if cls._connection and cls._connection.open:
cls._connection.close()
cls._connection = None