|
@@ -34,19 +34,19 @@ class MySqlDatabaseHelper:
|
|
|
# 创建数据库连接
|
|
# 创建数据库连接
|
|
|
try:
|
|
try:
|
|
|
conn = "mysql+pymysql://" + self._user + ":" + self._passwd + "@" + self._host + ":" + str(self._port) + "/" + self._dbname
|
|
conn = "mysql+pymysql://" + self._user + ":" + self._passwd + "@" + self._host + ":" + str(self._port) + "/" + self._dbname
|
|
|
|
|
+
|
|
|
|
|
+ # 通过连接池创建engine
|
|
|
|
|
+ self.engine = create_engine(
|
|
|
|
|
+ conn,
|
|
|
|
|
+ pool_size=20, # 设置连接池大小
|
|
|
|
|
+ max_overflow=30, # 超过连接池大小时的额外连接数
|
|
|
|
|
+ pool_recycle=1800, # 回收连接时间
|
|
|
|
|
+ pool_pre_ping=True, # 防止断开连接
|
|
|
|
|
+ isolation_level="READ COMMITTED" # 降低隔离级别
|
|
|
|
|
+ )
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- raise ConnectionAbortedError(f"failed to create connection string: {e}")
|
|
|
|
|
-
|
|
|
|
|
- # 通过连接池创建engine
|
|
|
|
|
- self.engine = create_engine(
|
|
|
|
|
- conn,
|
|
|
|
|
- pool_size=20, # 设置连接池大小
|
|
|
|
|
- max_overflow=30, # 超过连接池大小时的额外连接数
|
|
|
|
|
- pool_recycle=1800, # 回收连接时间
|
|
|
|
|
- pool_pre_ping=True, # 防止断开连接
|
|
|
|
|
- isolation_level="READ COMMITTED" # 降低隔离级别
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
|
|
+ raise ConnectionAbortedError(f"failed to create connection: {e}")
|
|
|
|
|
+
|
|
|
self._DBSession = sessionmaker(bind=self.engine)
|
|
self._DBSession = sessionmaker(bind=self.engine)
|
|
|
|
|
|
|
|
def load_data_with_page(self, query, params, page_size=100000):
|
|
def load_data_with_page(self, query, params, page_size=100000):
|
|
@@ -93,6 +93,7 @@ class MySqlDatabaseHelper:
|
|
|
except SQLAlchemyError as e:
|
|
except SQLAlchemyError as e:
|
|
|
session.rollback()
|
|
session.rollback()
|
|
|
print(f"error: {e}")
|
|
print(f"error: {e}")
|
|
|
|
|
+ raise
|
|
|
finally:
|
|
finally:
|
|
|
session.close()
|
|
session.close()
|
|
|
|
|
|
|
@@ -102,10 +103,11 @@ class MySqlDatabaseHelper:
|
|
|
try:
|
|
try:
|
|
|
result = session.execute(query, params or {}).fetchone()
|
|
result = session.execute(query, params or {}).fetchone()
|
|
|
return result
|
|
return result
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
except SQLAlchemyError as e:
|
|
except SQLAlchemyError as e:
|
|
|
session.rollback()
|
|
session.rollback()
|
|
|
print(f"error: {e}")
|
|
print(f"error: {e}")
|
|
|
|
|
+ raise
|
|
|
finally:
|
|
finally:
|
|
|
session.close()
|
|
session.close()
|
|
|
|
|
|