| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """
- 标准库数据访问对象
- 用于从MySQL一次性加载所有标准数据到内存
- """
- import sys
- import os
- # 添加项目根目录到 Python 路径
- current_dir = os.path.dirname(os.path.abspath(__file__))
- project_root = os.path.dirname(os.path.dirname(current_dir))
- if project_root not in sys.path:
- sys.path.insert(0, project_root)
- from typing import List, Dict, Optional
- class StandardDAO:
- """标准库数据访问对象 - 负责从数据库加载数据"""
- def __init__(self, db_pool):
- self.db_pool = db_pool
- self.table_name = "t_samp_standard_base_info"
- async def load_all_standards(self) -> List[Dict]:
- """
- 一次性从MySQL加载所有标准数据到内存
- Returns:
- 标准列表,每个标准包含:
- - id: 序号
- - standard_name: 标准名称(chinese_name)
- - standard_number: 标准号
- - validity: 时效性(XH/SX/FZ)
- """
- query = f"""
- SELECT
- id,
- chinese_name AS standard_name,
- standard_number,
- validity
- FROM {self.table_name}
- """
- try:
- async with self.db_pool.get_cursor() as cursor:
- await cursor.execute(query)
- results = await cursor.fetchall()
- return [dict(row) for row in results] if results else []
- except Exception as e:
- print(f"加载标准库数据失败: {e}")
- raise
|