import pymysql'''SQLController:对数据库操作私有:__sql_connect(self):作用:建立数据库连接   返回:数据库连接对象__sql_insert_info(self, insert_sql):insert_sql: sql语句,默认为空作用:数据插入__sql_delete_info(self, delete_sql):delete_sql: sql语句,默认为空作用:删除数据__sql_update_info(self, update_sql):update_sql: sql语句,默认为空作用:更新数据__sql_select_info(self, select_sql):select_sql: sql语句,默认为空作用:查询数据    公共:sql_close(self):关闭数据库连接         sql_handle(self, handle, sql):handle:操作方式,默认为空,不区分大小写值:SQL_INSERT:插入数据操作SQL_DELETE:删除数据操作SQL_UPDATE:更新数据操作SQL_SELECT:查询数据操作sql:sql语句,默认为空作用:数据的增删改查操作handle_table(self, handle, name, sql):handle:操作方式,默认为空,不区分大小写值:SHOW_TABLES:显示所有的数据表TABLE_IS_EXIST:判断某数据表是否存在CREATE_TABLE:创建数据表SHOW_COLUMNS:显示某数据表的列名name:数据表名称,默认为空sql:sql语句,默认为空作用:查询表是否存在以及创建表
'''class SQLController():__hostname = ''__username = ''__password = ''__dbname = ''def __init__(self, hostname = '', username = '', password = '', dbname = ''):if hostname == '' and username == '' and password == '' and dbname == '':print("No hostname or username or password or dbname!")passelse:self.__hostname = hostnameself.__username = usernameself.__password = passwordself.__dbname = dbname#连接数据库def __sql_connect(self):db = pymysql.connect(self.__hostname, self.__username, self.__password, self.__dbname)return db#关闭数据库连接def sql_close(self):self.__sql_connect().close()#sql使用def sql_handle(self, handle = '', sql = ''):handle = handle.upper()if sql == '':print('SQL is empty')return 0if handle == '':print('Handle is empty')return 0if handle == 'SQL_INSERT':self.__sql_insert_info(sql)elif handle == 'SQL_DELETE':self.__sql_delete_info(sql)elif handle == 'SQL_SELECT':self.__sql_select_info(sql)elif handle == 'SQL_UPDATE':self.__sql_update_info(sql)else:print('%s Error, use SQL_INSERT or SQL_DELETE or SQL_UPDATE or SQL_SELECT' % handle)#表和数据库的操作def handle_table(self, handle = '', name = '', sql = ''):if handle == 'CREATE_TABLE' and sql == '':print('No name of table and database!')return 0if handle == 'SHOW_COLUMNS' and name == '':print('No table has been selected!')return 0try:handle = handle.upper()db = self.__sql_connect()cursor = db.cursor()if handle == 'SHOW_TABLES' or handle == 'TABLE_IS_EXIST':cursor.execute('show tables')tables = cursor.fetchall()if len(tables) == 0:print('No Tables, You Need Create!')for table in tables:if handle == 'SHOW_TABLES':print(table[0])elif handle == 'TABLE_IS_EXIST':if name == table[0]:print('%s exist!' % name)else:print('No %s!' % name)cursor.close()elif handle == 'CREATE_TABLE':cursor.execute('%s' % sql)db.commit()cursor.close()print('%s create success!' % name)elif handle == 'SHOW_COLUMNS':cursor.execute('show columns from %s' % name)column = cursor.fetchall()for i in column:print(i[0])cursor.close()print('Success')except:print('%s Error' % handle)#增加数据def __sql_insert_info(self, insert_sql):try:db = self.__sql_connect()cursor = db.cursor()cursor.execute(insert_sql)db.commit()cursor.close()print('Insert success')except:print('Insert Info Failed!')db.rollback()#查询数据def __sql_select_info(self, select_sql):try:db = self.__sql_connect()cursor = db.cursor()cursor.execute(select_sql)result = cursor.fetchall()for row in result:print(row[0])cursor.close()print('Select success')except:print('Display Info Failed!')#更新数据def __sql_update_info(self, update_sql):try:db = self.__sql_connect()cursor = db.cursor()cursor.execute(update_sql)db.commit()cursor.close()print('Update success')except:print('Update Info Failed!')db.rollback()#删除数据def __sql_delete_info(self, delete_sql):try:db = self.__sql_connect()cursor = db.cursor()cursor.execute(delete_sql)db.commit()cursor.close()print('Delete success')except:print('Delete Info Failed!')db.rollback()#数据库连接测试def sql_connect_test(self):db = self.__sql_connect()cursor = db.cursor()cursor.execute('select version()')data = cursor.fetchone()print('database version : %s' % data)
#模块测试(测试不完整)# if __name__ == '__main__':    # sqlc = SQLController('localhost', 'root', '123456', 'MovieInfo')    # sqlc.sql_connect_test()    # sqlc.table_handle('SHOW_TABLE')    # m = 10    # sql_lang = 'insert into b(age) values (%d)' % m    # sqlc.sql_handle('SQL_INSERT', sql_lang)    # sql_lang_2 = 'select * from b'    # sql_lang_3 = 'delete from b where age = %d' % m    # sqlc.sql_handle('SQL_SELECT', sql_lang_2)    # sqlc.sql_handle('SQL_delete', sql_lang_3)    # sqlc.sql_handle('SQL_SELECT', sql_lang_2)    # sqlc.handle_table('SHOW_TABLES')    # sqlc.handle_table('TABLE_IS_EXIST', 'a')    # sqlc.handle_table('CREATE_TABLE', '', 'create table c (sex varchar(10))')    # sqlc.handle_table('SHOW_TABLES')    # sqlc.handle_table('SHOW_COlumns', 'a')

转载于:https://www.cnblogs.com/softwarecrash/p/8934409.html

Python3 数据库操作小封装相关推荐

  1. python封装数据库操作_Python3 数据库操作小封装

    import pymysql ''' SQLController:对数据库操作 私有: __sql_connect(self): 作用:建立数据库连接 返回:数据库连接对象 __sql_insert_ ...

  2. PHP中对数据库操作的封装

    在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...

  3. php封装的数据库操作文件夹,PHP中对数据库操作的封装_php

    现在我们把其封装在dbfz.inc中,其设计如下: $#@60;? class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表mysql,当为 2 ...

  4. 小博老师解析Java核心技术 ——JDBC数据库操作类封装

    2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...

  5. python3 数据库操作 orm sqlalchemy 简介

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  6. 数据库操作sql封装(insert)

    ** 数据库插入(insert)sql封装 ** 1. 封装工具类 public class DBUtil {public String column; //插入列名public String val ...

  7. python3数据库操作_python3对数据库的基本操作

    其实Python同Java一样,都有对JDBC操作的API. 注意:我的Python版本为3.6.5 Python2.7是应用比较广的,百度博客上很多相关的例子,所以本次不再列出. 只要是用过Java ...

  8. c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(四)

    整个例子的完整代码如下,VS2008下编译测试通过,本人已通过它实现N个项目,欢迎大家评测,谢谢指教 publicenum DBType ...{        Access,        SQL, ...

  9. c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(二)

    使用静态工厂模式,通过传入枚举型参数,动态创建访问实例 实现模式上采用基本实现接口,派生类继承基类的虚函数,从而实现代码的耦合较低,有很好的扩展性. publicenum DBType ...{   ...

最新文章

  1. 成功解决r2_score函数输出值始终为0的情况
  2. 时间复杂度和空间复杂度的故事
  3. iis7php怎么301重定向,iis7/8设置网站301重定向的方法
  4. (TOJ1248)Encoding
  5. linux下编辑文件实验,Linux实验_修改
  6. 给属性赋值_赋值方法:虚拟变量 Dummy Coding
  7. 牛客网 牛客小白月赛1 A.简单题-控制输出格式setiosflags()函数+setprecision()函数
  8. 批处理bat命令快速截图
  9. Hibernate教程——我的笔记
  10. 二元一次方程,且求共轭复根2020.11.17
  11. 音视频中的帧I 帧,B帧,P帧,IDR帧理解
  12. 干货 | 携程数据血缘构建及应用
  13. 红帽Linux多点触摸,Linux系统实现多点触摸
  14. 什么是SMART原则
  15. vue 高德地图 不同区域显示不同颜色_高德地图这样用成为你的图表神器
  16. 【python小程序】蜜雪冰城小卖铺
  17. stardust开篇
  18. flutter 实现put请求
  19. 警告!从ISO映像创建的U盘可能无法完全启动!Unknown引导扇区不支持NTFS文件系统
  20. Hystrix实现熔断降级

热门文章

  1. 【C语言】控制台窗口图形界面编程(四):文本输出
  2. 【Android】Android Service的生命周期
  3. 【Android】关于Android控件EditText的属性InputType的一些经验
  4. java类型比较_Java数据类型的比较
  5. python计算相关矩阵_Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2...
  6. python爬去百度搜索结果_python实现提取百度搜索结果的方法
  7. 从 Demo 中学习 Solidity
  8. LeetCode hard 668. Kth Smallest Number in Multiplication Table(二分答案)
  9. x86服务器当虚拟化的存储,X86服务器虚拟化实施方案.doc
  10. HTML输入学生成绩并排序java_JS实现冒泡排序,插入排序和快速排序并排序输出...