mysql_tool.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import mysql.connector
  2. class MysqlUtil:
  3. @staticmethod
  4. def connect_to_mysql(host,port,user,password,database):
  5. # 创建数据库连接
  6. connection = mysql.connector.connect(
  7. host=host, # 数据库主机地址
  8. user=user, # 数据库用户名
  9. port=port,
  10. password=password, # 数据库密码
  11. database=database # 数据库名称
  12. )
  13. return connection
  14. @staticmethod
  15. def execute_sql(connection,query,params):
  16. if connection.is_connected():
  17. print('Connected to MySQL database')
  18. # 创建一个cursor对象,用于执行SQL语句
  19. cursor = connection.cursor()
  20. # 执行SQL查询
  21. cursor.execute(query,params)
  22. mysql_count = cursor.fetchone()[0]
  23. cursor.close()
  24. connection.close()
  25. print('MySQL connection is closed')
  26. return mysql_count
  27. @staticmethod
  28. def insert_data(connection, query, params):
  29. if connection.is_connected():
  30. print('Connected to MySQL database')
  31. # 创建一个cursor对象,用于执行SQL语句
  32. cursor = connection.cursor()
  33. try:
  34. # 执行插入数据的SQL语句
  35. cursor.execute(query, params)
  36. # 提交事务
  37. connection.commit()
  38. print("Data inserted successfully.")
  39. print(cursor.rowcount) # 返回影响的行数
  40. except mysql.connector.Error as err:
  41. print(f"Error: {err}")
  42. connection.rollback() # 出错时回滚事务
  43. return None
  44. finally:
  45. cursor.close()
  46. # connection.close()
  47. # print('MySQL connection is closed')
  48. @staticmethod
  49. def insert_many(connection, query, params_list):
  50. """
  51. 批量插入数据
  52. :param connection: MySQL 连接对象
  53. :param query: SQL 插入语句
  54. :param params_list: 包含多条数据的参数列表
  55. """
  56. if connection.is_connected():
  57. print('Connected to MySQL database')
  58. # 创建一个 cursor 对象,用于执行 SQL 语句
  59. cursor = connection.cursor()
  60. try:
  61. # 执行批量插入的 SQL 语句
  62. cursor.executemany(query, params_list)
  63. # 提交事务
  64. connection.commit()
  65. print(f"Data inserted successfully. {cursor.rowcount} rows affected.")
  66. except mysql.connector.Error as err:
  67. print(f"Error: {err}")
  68. connection.rollback() # 出错时回滚事务
  69. finally:
  70. cursor.close()
  71. print('MySQL cursor is closed')
  72. @staticmethod
  73. def query_data(connection, query, params=None):
  74. """
  75. 执行查询操作
  76. :param connection: MySQL 连接对象
  77. :param query: SQL 查询语句
  78. :param params: SQL 查询参数
  79. :return: 查询结果(tuple),如果没有结果返回 None
  80. """
  81. if connection.is_connected():
  82. print('Connected to MySQL database')
  83. cursor = connection.cursor()
  84. try:
  85. cursor.execute(query, params) # 执行查询
  86. result = cursor.fetchall() # 获取所有查询结果
  87. return result
  88. except mysql.connector.Error as err:
  89. print(f"Error: {err}")
  90. return None
  91. finally:
  92. cursor.close()
  93. print('MySQL cursor is closed')
  94. @staticmethod
  95. def update_data(connection, query, params):
  96. """
  97. 执行更新操作
  98. :param connection: MySQL 连接对象
  99. :param query: SQL 更新语句
  100. :param params: SQL 更新参数
  101. """
  102. if connection.is_connected():
  103. print('Connected to MySQL database')
  104. cursor = connection.cursor()
  105. try:
  106. cursor.execute(query, params) # 执行更新
  107. connection.commit() # 提交事务
  108. print(f"{cursor.rowcount} rows affected.")
  109. except mysql.connector.Error as err:
  110. print(f"Error: {err}")
  111. connection.rollback() # 出错时回滚事务
  112. finally:
  113. cursor.close()
  114. print('MySQL cursor is closed')