Python学习七:数据库编程接口
创始人
2024-03-30 07:44:51
0

文章目录

  • 一、数据库编程接口
    • 1.1 连接对象
      • 1.1.1 获取连接对象
      • 1.1.2 连接对象的方法
    • 2.1 游标对象

一、数据库编程接口

1.1 连接对象

1.1.1 获取连接对象

数据库连接对象主要提供获取数据库游标对象和提交、回滚事物的方法,以及关闭数据库连接

使用connet()函数连接对象
参数

  1. dsn:数据源名称,给出该参数标识数据库依赖
  2. user: 用户名
  3. password:用户密码
  4. host:主机名
  5. database:数据库名称
  6. charset:编码
  7. cursorclass:驱动
  8. port:端口号

import pymysql
if __name__ == '__main__':conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root',db='kc',charset='utf8',cursorclass=pymysql.cursors.DictCursor)

1.1.2 连接对象的方法

  1. close():关闭数据库连接
  2. commit():提交事务
  3. rollback():回滚事务
  4. cursor():获取游标对象,操作数据库,执行DML操作、调用存储过程等

2.1 游标对象

游标对象代表数据库中的游标,用于指示抓取数据库操作上下文。主要提供执行sql语句,调用存储过程、获取查询结果等方法。

使用coursor()函数连接对象

游标对象属性

  1. description :数据库列类型和值得描述对象
  2. rowcount:放回结果的行数信息统计

游标对象的方法

  1. callproc(procname,[,parameters]) 调用存储过程,需要数据库支持
  2. close()关闭当前游标
  3. 0excute(operation [,parameters]) 执行数据库操作,SQL语句或者数据库命令
  4. excutemany(operation,seq_of_params) 用于批量操作,如批量更新
  5. fetchone() 获取查询结果集的下一条信息
  6. fetchmany(size) 获取指定数量的记录
  7. nextset() 跳至下一个可用的结果集
  8. arraysize 使用指定fetchmany()获取行数,默认为1
  9. setinputsizes(sizes) 设置在调佣execute*()方法时分配的内存区域大小
  10. setoutputsizes(sizes)

参考地址
在这里插入图片描述


'''
封装一个mysql工具类(需要自己写SQL语句)
功能:mysql数据库操作
步骤:1.连接数据库2.通过连接对象,获取游标对象3.增删改查操作
方法:1.查2.增删改 commit,rollback
'''# 先要导入pymysql
import pymysql# 把连接参数定义成字典
config = {"host": "127.0.0.1","port": 3307,"database": "lebo","charset": "utf8","user": "root","passwd": "root"
}class Mysqldb():# 初始化方法def __init__(self):# 初始化方法中调用连接数据库的方法self.conn = self.get_conn()# 调用获取游标的方法self.cursor = self.get_cursor()# 连接数据库的方法def get_conn(self):# **config代表不定长参数conn = pymysql.connect(**config)return conn# 获取游标def get_cursor(self):cursor = self.conn.cursor()return cursor# 查询sql语句返回的所有数据def select_all(self, sql):self.cursor.execute(sql)return self.cursor.fetchall()# 查询sql语句返回的一条数据def select_one(self, sql):self.cursor.execute(sql)return self.cursor.fetchone()# 查询sql语句返回的几条数据def select_many(self, sql, num):self.cursor.execute(sql)return self.cursor.fetchmany(num)# 增删改除了SQL语句不一样其他都是一样的,都需要提交def commit_data(self, sql):try:# 执行语句self.cursor.execute(sql)# 提交self.conn.commit()print("提交成功")except Exception as e:print("提交出错\n:", e)# 如果出错要回滚self.conn.rollback()# 当对象被销毁时,游标要关闭,连接也要关闭# 创建时是先创建连接后创建游标,关闭时是先关闭游标后关闭连接def __del__(self):self.cursor.close()self.conn.close()
# 已经封装好mysql类了,就不用导入pymsql了,直接导入封装好的类from mysql_util import Mysqldb# 实例化
my_db = Mysqldb()# 写查询SQL语句
sql = "select * from user where id>5"
# 查询所有
select_all = my_db.select_all(sql)
print("查询所有数据:\n", select_all)
# 查询一条
select_one = my_db.select_one(sql)
print("查询一条数据:\n", select_one)
# 查询多条
select_many = my_db.select_many(sql, 3)
print("查询3条数据:\n", select_many)# 新增一条数据
value = (16, 'BBQ')
sql = f"insert into user values {value}"
insert_one = my_db.commit_data(sql)
# 新增多条数据
values = "(17, 'aaa'), (18, 'bbb'), (19, 'ccc')"
sql = f"insert into user values {values}"
insert_many = my_db.commit_data(sql)# 修改数据
sql = "update user set name = '出不去了' where id = 17"
my_db.commit_data(sql)# 删除数据
sql = "delete from user where id = 17"
my_db.commit_data(sql)

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
安卓文字转语音tts没有声音 安卓文字转语音TTS没有声音的问题在应用中比较常见,通常是由于一些设置或者代码逻辑问题导致的。本文将...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
APK正在安装,但应用程序列表... 这个问题可能是由于以下原因导致的:应用程序安装的APK文件可能存在问题。设备上已经存在同名的应用程序...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...