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