36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
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 |