config.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. """
  2. 数据库配置管理
  3. """
  4. import os
  5. from typing import Optional
  6. from dotenv import load_dotenv
  7. load_dotenv()
  8. class DatabaseConfig:
  9. """Oracle数据库配置类"""
  10. def __init__(
  11. self,
  12. host: Optional[str] = None,
  13. port: Optional[int] = None,
  14. service_name: Optional[str] = None,
  15. username: Optional[str] = None,
  16. password: Optional[str] = None
  17. ):
  18. self.host = host or os.getenv("DB_HOST", "localhost")
  19. self.port = port or int(os.getenv("DB_PORT", "1521"))
  20. self.service_name = service_name or os.getenv("DB_SERVICE_NAME", "ORCL")
  21. self.username = username or os.getenv("DB_USERNAME", "system")
  22. self.password = password or os.getenv("DB_PASSWORD", "")
  23. def get_connection_string(self) -> str:
  24. """获取Oracle连接字符串"""
  25. return f"{self.username}/{self.password}@{self.host}:{self.port}/{self.service_name}"
  26. def validate(self) -> bool:
  27. """验证配置是否完整"""
  28. return all([self.host, self.port, self.service_name, self.username, self.password])