铜川做网站,商务网站设计制作好的工具和方法,课题网站建设培训简讯,聊城高新区建设局网站文章目录一、封装的目的二、封装实现#xff08;重点#xff09;三、搭建框架四、案例#xff08;重点#xff09;4.1 设置私有方法4.2 实现类方法4.2.1 查询一条记录4.2.2 增删改数据4.3 完整代码实现五、小结一、封装的目的
将 数据库常用的操作#xff0c;封装成类中的…文章目录一、封装的目的二、封装实现重点三、搭建框架四、案例重点4.1 设置私有方法4.2 实现类方法4.2.1 查询一条记录4.2.2 增删改数据4.3 完整代码实现五、小结一、封装的目的将 数据库常用的操作封装成类中的方法。 将来在使用时只需提供 要执行的SQL语句给这个方法即可执行。使用者不需要关心建立连接、创建游标、关闭游标、关闭连接二、封装实现重点类方法可以用类名直接调用添加装饰器。类方法:create_conn()//获取数据库连接 类方法:close_conn()//关闭数据库连接 类方法:query_one(sql)//查询一条数据 类方法:db_uid(sql)//执行数据库增删改 要求:定义一个DBTools工具类对外提供以上方法三、搭建框架# 定义 数据库工具类classDBTools(object):# 创建连接defcreate_conn(self):pass# 查一条记录defquery_one(self,sql):pass# 创建连接# 创建游标# 关闭游标# 关闭连接# 增删改记录defdb_uid(self,sql):pass# 创建连接# 创建游标# 关闭游标# 关闭连接四、案例重点idtitlepub_datereadcommentis_delete1射雕英雄传1960-05-01123402天龙八部1966-07-24374003笑傲江湖1995-12-24238004.1 设置私有方法让创建连接方法 create_conn( ) 对用户不可见对用户没用但是又不影响后面查询和修改方法使用。—设置私有方法 __create_conn( )# 定义 数据库工具类classDBTools(object):# 创建连接 - 类方法。可以直接使用类名调用classmethoddef__create_conn(cls):connpymysql.connect(host172.16.28.4,port3306,userroot,passwordroot,databasebooks,charsetutf8)# 不能遗漏(创建连接之后要返回结果)returnconn4.2 实现类方法4.2.1 查询一条记录importpymysql# 定义 数据库工具类classDBTools(object):# 创建连接 - 类方法。可以直接使用类名调用classmethoddef__create_conn(cls):connpymysql.connect(host172.16.28.4,port3306,userroot,passwordroot,databasebooks,charsetutf8)# 不能遗漏(创建连接之后要返回结果)returnconn# 查一条记录 - 封装为类方法方便调用classmethoddefquery_one(cls,sql):my_connNonemy_cursorNoneresNonetry:# 创建连接。借助类名调用 类方法 create_conn。my_connDBTools.__create_conn()# 接收 return conn返回的结果给my_conn# 创建游标my_cursormy_conn.cursor()# 执行 sql 语句做查询my_cursor.execute(sql)# 提取一条记录resmy_cursor.fetchone()exceptExceptionaserr:print(执行查询SQL失败,str(err))finally:# 关闭游标my_cursor.close()# 关闭连接my_conn.close()# 返回查询结果returnresif__name____main__:resultDBTools.query_one(select * from t_book;)print(查询语句的结果,result)4.2.2 增删改数据importpymysql# 定义 数据库工具类classDBTools(object):# 创建连接 - 类方法。可以直接使用类名调用classmethoddef__create_conn(cls):connpymysql.connect(host172.16.28.4,port3306,userroot,passwordroot,databasebooks,charsetutf8)# 不能遗漏returnconn# 增删改记录classmethoddefdb_uid(cls,sql):my_connNonemy_cursorNonetry:# 创建连接.my_connDBTools.__create_conn()# 创建游标my_cursormy_conn.cursor()# 执行 增删改 语句my_cursor.execute(sql)print(Affected rows:,my_conn.affected_rows())# 提交事务my_conn.commit()exceptExceptionaserr:print(执行 增删改 SQL 失败,str(err))# 回滚事务my_conn.rollback()finally:# 关闭游标my_cursor.close()# 关闭连接my_conn.close()if__name____main__:DBTools.db_uid(update t_book set read 100 where id 3;)4.3 完整代码实现文件py08_db_tools.pyimportpymysql# 定义 数据库工具类classDBTools(object):# 创建连接 - 类方法。可以直接使用类名调用classmethoddef__create_conn(cls):connpymysql.connect(host172.16.28.4,port3306,userroot,passwordroot,databasebooks,charsetutf8)# 不能遗漏returnconn# 查一条记录 - 封装为类方法方便调用classmethoddefquery_one(cls,sql):my_connNonemy_cursorNoneresNonetry:# 创建连接, 借助类名调用 类方法 create_connmy_connDBTools.__create_conn()# 创建游标my_cursormy_conn.cursor()# 执行 sql 语句做查询my_cursor.execute(sql)# 提取一条记录resmy_cursor.fetchone()exceptExceptionaserr:print(执行查询SQL失败,str(err))finally:# 关闭游标my_cursor.close()# 关闭连接my_conn.close()# 返回查询结果returnres# 增删改记录classmethoddefdb_uid(cls,sql):my_connNonemy_cursorNonetry:# 创建连接my_connDBTools.__create_conn()# 创建游标my_cursormy_conn.cursor()# 执行 增删改 语句my_cursor.execute(sql)print(Affected rows:,my_conn.affected_rows())# 提交事务my_conn.commit()exceptExceptionaserr:print(执行 增删改 SQL 失败,str(err))# 回滚事务my_conn.rollback()finally:# 关闭游标my_cursor.close()# 关闭连接my_conn.close()if__name____main__:resultDBTools.query_one(select * from t_hero;)print(查询语句的结果,result)DBTools.db_uid(update t_book set read 100 where id 3;)五、小结