当前位置: 首页 > news >正文

个人网站的设计论文全国哪个餐饮品牌的网站做的好

个人网站的设计论文,全国哪个餐饮品牌的网站做的好,网络推广预算方案,北京网站改版价格在设计 MMORPG#xff08;大规模多人在线角色扮演游戏#xff09;时#xff0c;数据库系统是游戏架构中至关重要的一部分。数据库不仅承担了游戏中各种数据#xff08;如玩家数据、物品数据、游戏世界状态等#xff09;的存储和管理任务#xff0c;还必须高效地支持并发访…在设计 MMORPG大规模多人在线角色扮演游戏时数据库系统是游戏架构中至关重要的一部分。数据库不仅承担了游戏中各种数据如玩家数据、物品数据、游戏世界状态等的存储和管理任务还必须高效地支持并发访问、事务处理和复杂的查询。为了确保系统的可扩展性和维护性我们需要对数据库操作进行封装和模块化设计。 为了实现上述目标本文设计了一个基于 Twisted 的数据库封装系统。Twisted 是一个异步框架适用于处理大量并发任务。结合 Twisted 和数据库连接池adbapi.ConnectionPool我们可以高效地执行异步数据库操作。 1. DatabaseError 作用自定义异常类用于在数据库操作发生错误时抛出详细的错误信息包含错误消息和错误码默认为500。2. DatabaseOperation 作用抽象基类定义了数据库操作的统一接口。所有具体的数据库操作类如 SelectOperation, InsertOperation 等都继承自此类必须实现 excute 方法来执行数据库事务。 关键方法 executeQuery执行实际的 SQL 查询。 handleSuccess操作成功时的回调函数。 handleFailure操作失败时的回调函数。3. SelectOperation 作用继承自 DatabaseOperation封装了 SELECT 查询操作。提供了 executeQuery 方法来执行 SQL 查询并返回查询结果。 关键方法 executeQuery执行 SELECT 查询并根据提供的表名、列名、查询条件等生成 SQL 语句。 excute实现 DatabaseOperation 中的抽象方法执行查询操作。4. InsertOperation 作用继承自 DatabaseOperation封装了 INSERT 插入操作。通过 executeQuery 方法生成插入的 SQL 语句并执行。 关键方法 executeQuery构建并执行 INSERT SQL 语句将数据插入指定的表。 excute实现 DatabaseOperation 中的抽象方法执行插入操作。5. UpdateOperation 作用继承自 DatabaseOperation封装了 UPDATE 更新操作。通过 executeQuery 方法生成更新的 SQL 语句并执行。 关键方法 executeQuery构建并执行 UPDATE SQL 语句用新值更新指定的行。 excute实现 DatabaseOperation 中的抽象方法执行更新操作。6. DeleteOperation 作用继承自 DatabaseOperation封装了 DELETE 删除操作。通过 executeQuery 方法生成删除的 SQL 语句并执行。 关键方法 executeQuery构建并执行 DELETE SQL 语句根据指定条件删除记录。 excute实现 DatabaseOperation 中的抽象方法执行删除操作。 7. DatabaseManager 作用负责数据库连接池的管理和数据库操作的执行。它使用 adbapi.ConnectionPool 创建数据库连接池执行操作并处理事务。 关键方法 getConnection返回数据库连接池的实例。 executeOperation接受一个数据库操作对象调用 runInteraction 方法来执行异步数据库事务并处理操作成功或失败的回调。 8. GameQueryPlayerId 作用继承自 SelectOperation封装了查询玩家信息的操作。它指定查询条件为玩家的名称并通过 excute 方法执行查询。 关键方法 excute执行 SelectOperation 中的 executeQuery 方法查询玩家 ID。 set_query_name设置查询的玩家名称。代码 from twisted.enterprise import adbapi from twisted.internet.defer import Deferred import pymysql import traceback from twisted.internet import reactor from functools import partial from abc import ABC, abstractmethod # 异常类定义 class DatabaseError(Exception):def __init__(self, message, code500):self.message messageself.code code# 抽象的数据库操作类 class IDatabaseOperation(ABC):abstractmethoddef executeQuery(self, txn, table: str, columns: list, values: dict {}, condition: dict None) - any:passdef handleSuccess(self, result: any):print(Operation succeeded with result:, result)def handleFailure(self, error: Exception):# 这里做一些额外的错误处理比如记录日志或者返回友好的错误信息print(Operation failed:, error)abstractmethoddef excute(self, txn):#这里封装代码passclass ABC_SelectOperation(IDatabaseOperation):def executeQuery(self, txn, table: str, columns: list None, values: dict None, condition: dict None) - any:try:column_str , .join(columns) if columns else *query fSELECT {column_str} FROM {table}if condition:condition_str AND .join([f{key} %s for key in condition.keys()])query f WHERE {condition_str}print(fExecuting query: {query}, with values: {tuple(condition.values()) if condition else ()})txn.execute(query, tuple(condition.values()) if condition else ()) # use condition values if anyresult txn.fetchall()return resultexcept Exception as e:print(fError executing query: {e})traceback.print_exc()# 返回一个失败的结果以便继续后续操作return {error: str(e)}abstractmethoddef excute(self, txn):passclass ABC_InsertOperation(IDatabaseOperation):def executeQuery(self, txn, table: str, columns: list None, values: dict None, condition: dict None) - any:try:column_str , .join(columns)placeholders , .join([%s] * len(columns)) # Create placeholders based on column length# Extract values from the dictionary for each columnvalue_tuple tuple(values[col] for col in columns)query fINSERT INTO {table} ({column_str}) VALUES ({placeholders})print(fExecuting insert query: {query}, with values: {value_tuple})txn.execute(query, value_tuple) # Use parameterized queryreturn txn.lastrowid # Return the inserted record IDexcept Exception as e:print(fError executing insert query: {e})traceback.print_exc()# 返回一个失败的结果以便继续后续操作return {error: str(e)}abstractmethoddef excute(self, txn):passclass ABC_UpdateOperation(IDatabaseOperation):def executeQuery(self, txn, table: str, columns: list None, values: dict None, condition: dict None) - any:try:if condition and not isinstance(condition, dict):raise TypeError(Condition must be a dictionary)set_str , .join([f{col} %s for col in columns])query fUPDATE {table} SET {set_str}# Ensure that values is passed as a tuple for updatevalue_tuple tuple(values[col] for col in columns)if condition:condition_str AND .join([f{key} %s for key in condition.keys()])query f WHERE {condition_str}value_tuple tuple(condition.values()) # Append condition valuesprint(fExecuting update query: {query}, with values: {value_tuple})txn.execute(query, value_tuple) # Use parameterized querytxn.connection.commit()return txn.rowcount # Return the number of updated rowsexcept Exception as e:print(fError executing update query: {e})traceback.print_exc()# 返回一个失败的结果以便继续后续操作return {error: str(e)}abstractmethoddef excute(self, txn):passclass ABC_DeleteOperation(IDatabaseOperation):def executeQuery(self, txn, table: str, columns: list None, values: dict None, condition: dict None) - any:try:if not condition:raise ValueError(Condition for deletion cannot be empty.)condition_str AND .join([f{key} %s for key in condition.keys()])query fDELETE FROM {table} WHERE {condition_str}print(fExecuting delete query: {query}, with values: {tuple(condition.values())})txn.execute(query, tuple(condition.values())) # Use condition values for parameterized queryreturn txn.rowcountexcept Exception as e:print(fError executing delete query: {e})traceback.print_exc()# 返回一个失败的结果以便继续后续操作return {error: str(e)}abstractmethoddef excute(self):pass# 数据库管理类负责数据库连接池和事务 class DatabaseManager:def __init__(self, db_config):# 初始化数据库连接池self.dbConnectionPool adbapi.ConnectionPool(pymysql, **db_config)def getConnection(self):return self.dbConnectionPooldef executeOperation(self, operation: DatabaseOperation) - Deferred:try:# 使用 partial 创建一个指定了参数的函数deferred self.dbConnectionPool.runInteraction(operation.excute)deferred.addCallback(operation.handleSuccess)deferred.addErrback(operation.handleFailure)return deferredexcept Exception as e:error DatabaseError(str(e), 500)operation.handleFailure(error)return None# 示例数据库配置 db_config {host: localhost,user: root,password: root,database: test, }class GameQueryPlayerId(ABC_SelectOperation):def __init__(self):self.select_columns [name, id]self.elect_condition {name: new_name} # 在此给出查询条件def excute(self, txn):# 执行查询操作return self.executeQuery(txn,test, columnsself.select_columns, conditionself.elect_condition )def set_query_name(self, name):self.elect_condition[name] name# 示例操作 def main():# 创建DatabaseManager实例db_manager DatabaseManager(db_config)ccGameQueryPlayerId GameQueryPlayerId()ccGameQueryPlayerId.set_query_name(new_name)deferred db_manager.executeOperation(ccGameQueryPlayerId)reactor.run()if __name__ __main__:main()
http://www.pierceye.com/news/131151/

相关文章:

  • 网站建设与维护试卷第九章各网站文风
  • 熊掌号网站的基础建设费用网站的建设ppt模板
  • 有口碑的坪山网站建设王野天 演员
  • 建e网怎么赚钱衡水网站优化
  • 做牙科设计的网站域名一定要备案才能用吗
  • 哪个网站做团购要求低点河北省住房和城乡建设厅网站
  • 华为商城网站建设世界杯大数据
  • 网站流量指标高埗镇仿做网站
  • 网站建设颊算校园网站的作用
  • 云南公司网站制作外贸网站推广外包
  • 甘肃住房建设厅的网站数据中心idc机房
  • wordpress开发视频网站模板下载wordpress qq 微信登录
  • 上海网站建设网站营销推广费计入什么科目
  • 云南培训网站建设网站建设的公司太多了
  • 洛阳网站建设招聘信息ppt设计师兼职
  • 建工网官方网站电子商务网站设计岗位主要是
  • 保险网站建设平台青岛设计公司排名
  • 伊利网站建设评价做的最好的宠物网站
  • 沈阳的网站制作公司哪家好常用设计资源网站
  • 做网站需要什么技术文化传媒公司 网站备案
  • 郑州市建设厅网站html5 网站开发定制
  • 网站制作网站建站公司用wordpress
  • 做资讯网站盈利措美网站建设
  • 山东建设工程执业证书查询网站建网是什么
  • 大型服装网站建设wordpress留言板模版
  • 延安做网站沈阳学网站制作学校
  • 网站添加新闻网站免费正能量软件不良
  • asp c 网站开发互动网门户网站建设
  • 图书馆网站结构怎么做国外超酷设计网站
  • 网站开发软件搭配学室内设计去哪好