实现一个MYSQL工具类,包含判断创建数据表是否存在,创建数据表

可以使用Python的MySQLdb模块来实现一个MYSQL工具类。下面是一个简单的实现示例:

import MySQLdbclass MySQLTool:def __init__(self, host, user, password, database):self.host = hostself.user = userself.password = passwordself.database = databasedef connect(self):self.connection = MySQLdb.connect(host=self.host,user=self.user,password=self.password,database=self.database)self.cursor = self.connection.cursor()def table_exists(self, table_name):self.cursor.execute(f"SHOW TABLES LIKE '{table_name}'")return self.cursor.fetchone() is not Nonedef create_table(self, table_name, columns):column_str = ', '.join(columns)statement = f"CREATE TABLE {table_name} ({column_str})"self.cursor.execute(statement)self.connection.commit()def close(self):self.cursor.close()self.connection.close()

使用示例:

tool = MySQLTool(host='localhost', user='root', password='password', database='mydb')
tool.connect()table_name = 'mytable'
columns = ['id INT PRIMARY KEY AUTO_INCREMENT','name VARCHAR(100)','age INT','email VARCHAR(100)'
]if not tool.table_exists(table_name):tool.create_table(table_name, columns)print(f"Table {table_name} created successfully.")
else:print(f"Table {table_name} already exists.")tool.close()

在上面的示例中,我们首先创建了一个MySQLTool类,并在初始化方法中传入了数据库的连接信息。然后使用connect方法连接到数据库。

table_exists方法用于判断给定的数据表是否存在,它执行了一个SHOW TABLES查询,并检查返回结果是否有值。

create_table方法用于创建数据表,它接受数据表名称和列定义作为参数,然后执行一个CREATE TABLE语句创建表格。

最后,使用close方法关闭数据库连接。

在使用示例中,我们首先创建了一个MySQLTool对象并连接到数据库。然后定义了一个数据表名称和列定义列表。我们使用table_exists方法检查表格是否存在,如果不存在,则使用create_table方法创建表格。最后,使用close方法关闭数据库连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“/bin/bash“: stat /bin/bash: no such file or directory: unknown

简介:常规情况下,在进入容器时习惯使用 /bin/bash为结尾,如:docker exec -it test-sanic /bin/bash, 但是如果容器本身使用了精简版,只装了sh命令,未安装bash。这时就会抛出"/bin/bash&quo…

Eureka 本机集群实现

距离上次发布博客已经一年多了,主要就是因为考研,没时间学习技术的内容,现在有时间继续完成关于代码方面的心得,希望跟大家分享。 今天在做一个 Eureka 的集群实现,我是在本电脑上跑的,感觉这个挺有意思&a…

Linux的网络文件共享服务之FTP服务

一.存储类型 1.1 存储类型分为三种 直连式存储:Direct-Attached Storage,简称DAS 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理) 网络附加存储:Net…

Day 48 动态规划 9

198. 打家劫舍1 代码随想录 1. 思路 本体是非常简单的动态规划问题,dp[i]就代表0-i这些家可以抢劫到的最大金额,分两种情况进行讨论。一个是抢当前的不抢之前的,一个是不抢当前的。代码如下: class Solution { public:int rob(v…

Sqoop作业调度:自动化数据传输任务

自动化数据传输任务是大数据处理中的一个重要方面,可以定期执行Sqoop作业,确保数据在不同系统之间的同步。本文将深入探讨如何使用Sqoop作业调度来自动化数据传输任务,并提供详细的示例代码和全面的内容,以帮助大家更好地理解和应…

基于RBF的时间序列预测,基于BP神经网络的时间序列预测

目录 完整代码和数据下载链接:基于RBF的时间序列预测,基于BP神经网络的时间序列预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88742382 RBF的详细原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于RBF的时间序列预测,…

二叉树简介

二叉树 二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。 二叉树的遍历 二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。 前序遍历:访问根节点 --> 遍历左子树 --> 遍历右子树中序遍历&…

三、MyBatis 多表映射

本章概要 多表映射概念对一映射对多映射多表映射总结 多表映射优化多表映射总结 3.1 多表映射概念 多表查询结果映射思路 开发中有很多** 多表查询**需求,这种情况如何让进行处理? MyBatis 思想是:数据库不可能永远是你所想或所需的那个样…

在AWS lambda函数中用python脚本访问DynamoDB

语法 dynamodb.Table(A).query(IndexNameOrder-index,KeyConditionExpressionKey(Order).eq(Order) 这段代码是用于在 DynamoDB 中对表进行查询操作的 Python 代码,主要使用了 query 方法。 dynamodb.Table(A):首先从 DynamoDB 中选取表 A 进行操作。 .…

用LED数码管显示计数器T0的计数值

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit SP3^2 ; //将S位定义为P3.2引脚 unsigned char Tab[ ]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码表 unsigned char x; /************************************************************…

Arduino开发实例-手指心率传感器模块

手指心率传感器模块 文章目录 手指心率传感器模块1、手指心率传感器介绍2、硬件准备及接线3、代码实现1、手指心率传感器介绍 本次使用的心率传感器模块是为教育和娱乐目的而设计的,通过手指检测心血管脉搏波。 它使用 PPG (HRM-2511E) 探头进行数据传输。 该传感器使用红外线…

Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

场景 Mysql中怎样设置指定ip远程访问连接&#xff1a; Mysql中怎样设置指定ip远程访问连接_navicat for mysql 设置只有某个ip可以远程链接-CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式&#xff0c;如果通过可视化工具比如Navicat来实现。 注&#xff1a…

element里面的confirm弹窗,提示message换行

element里面的confirm弹窗&#xff0c;提示message换行 confirm弹窗的message换行 直接添加dangerouslyUseHTMLString属性即可 let str 我是第一行提示&#xff01;\n 第二行提示&#xff01;\n 第三行提示; // 处理str let mesg str.replace(/\n/g, <br />); thi…

router.afterEach()后置钩子用法

router.afterEach 是 Vue Router 提供的全局后置钩子&#xff0c;用于在路由切换之后执行一些逻辑。与 beforeEach 钩子不同&#xff0c;afterEach 不需要调用 next 函数&#xff0c;因为它是在导航已经确认的情况下执行的。 基本用法如下&#xff1a; router.afterEach((to,…

在java java.util.Date 已知逝去时间怎么求年月日

您可以使用java.util.Date对象的getYear()、getMonth()和getDate()方法来获取逝去时间的年、月和日。 示例代码如下&#xff1a; import java.util.Date;public class Main {public static void main(String[] args) {Date deceasedDate new Date(120, 8, 15); // 已知逝去时…

案例130:基于微信小程序的综合文化信息管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

七大排序(含快排+归并的递归版和非递归版)

文章目录 前言一、冒泡排序二、选择排序三、插入排序四、希尔排序五、堆排序六、快速排序快排的递归方式快排的非递归方式 七、归并排序自上而下的递归自下而上的迭代 总结 前言 排序&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的…

代码随想录算法训练营第20天 | 654.最大二叉树 + 617.合并二叉树 + 700.二叉搜索树中的搜索 + 98.验证二叉搜索树

今日任务 654.最大二叉树 - Medium617.合并二叉树 - Easy700.二叉搜索树中的搜索 - Easy98.验证二叉搜索树 - Medium 654.最大二叉树 - Medium 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法…

windows下cmd 查看端口号kill进程

网上总是不准&#xff0c;还不如自己写&#xff0c;省时省力 查看所有进程占用的端口&#xff08;基本没用&#xff0c;谁没事看所有端口&#xff1f;&#xff09; netstat –ano看指定端口PID&#xff0c;最后一位数字&#xff0c;即PID netstat -ano|findstr 80按照PID ki…

数学建模-时间序列预测步骤

目录 数据 第一步&#xff1a;定义时间 第二步&#xff1a;创建传统模型 结果 论文下笔 GG 数据 第一步&#xff1a;定义时间 第二步&#xff1a;创建传统模型 点击条件&#xff0c;点击 离群值全部勾选 点击统计 点击图 保存 选项 结果 论文下笔 由于我们的数据中不存在…