python emo_utils_python接口自动化(4)操作mysql

操作mysql

安装pymysql:pip install pymysql

常用对象:

Connection:代表一个与MySQL Server的socket连接,使用connect方法来创建一个连接实例。

Cursor:代表一个与MySQL数据库交互对象,使用Connection.Cursor()在当前socket连接上的交互对象。

Connection对象常用的API:

connect() 创建一个数据库连接实例

begin() 开始一个事务

close() 发送一个退出消息,并关闭连接

commit() 提交修改至数据库

cursor() 创建一个cursor(游标)实例

ping() 检测服务器是否在运行

rollback() 回滚当前事务

select_db(db) 设置当前db

show_warnings() 显示警告信息

Cursor对象常用API:

close() 关闭当前cursor

execute() 执行一个sql语句

executemany() 执行批量sql语句

fetchall() 取所有数据

fetchone() 取一条数据

插入、查询、删除操作

新建database:

create database pymysql;

use pymysql;

create table users(

id int primary key,

name varchar(10)

)

代码:

解释:

cursor.fetchone(),获取一行数据,为元组类型

cursor.fetchall(),获取所有行的数据,为元组类型,元组里面包含元组,一个元组代表一样数据

import pymysql

import random

class MysqlDemo:

def __init__(self):

pass

def get_conn(self):

conn=pymysql.connect(

host="192.168.239.137",

port=3306,

user="root",

password="krystal",

db="pymysql",

charset="utf8"

)

return conn

if __name__=='__main__':

#获取cursor游标

conn=MysqlDemo().get_conn()

cursor=conn.cursor()

#插入数据:

sql1='insert into `users`(id,name) values(1,"jimmy"),(2,"krystal")'

cursor.execute(sql1)

#插入多条数据:

sql2='insert into `users`(id,name) values(%s,%s)'

sql2_data=[]

for i in range(3,10):

name="".join(random.sample('asdfghjklzxcvbnmqwertuyiop',5))

id=i

sql2_data.append((i,name)) # 封装为元组,并追加到列表中

print(sql2_data)

cursor.executemany(sql2,sql2_data)

#查询数据

sql3='select * from users limit 3'

cursor.execute(sql3)

data1=cursor.fetchone() #获取一条数据,为元组类型

data2=cursor.fetchall() #获取所有数据,为元组类型,元组包含元组

print("name:{},id:{}".format(data1[0],data1[1]))

for row in data2:

name=row[0]

id=row[1]

print("name:{},id:{}".format(name, id))

conn.commit()

cursor.close()

conn.close()

别人的mysql工具类封装

import pymysql

from warnings import filterwarnings

# 忽略Mysql告警信息

filterwarnings("ignore", category=pymysql.Warning)

class MysqlDb:

def __init__(self):

# 建立数据库连接

self.conn = pymysql.connect("192.168.239.137", "root", "krystal", "pymysql")

# 使用 cursor 方法获取操作游标,得到一个可以执行sql语句,并且操作结果作为字典返回的游标

self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)

def __del__(self):

# 关闭游标

self.cur.close()

# 关闭连接

self.conn.close()

def query(self, sql, state="all"):

"""

查询

:param sql:

:param state: all是默认查询全部

:return:

"""

self.cur.execute(sql)

if state == "all":

# 查询全部

data = self.cur.fetchall()

else:

# 查询单条

data = self.cur.fetchone()

return data

def execute(self, sql):

"""

更新、删除、新增

:param sql:

:return:

"""

try:

# 使用execute操作sql

rows = self.cur.execute(sql)

# 提交事务

self.conn.commit()

return rows

except Exception as e:

print("数据库操作异常 {0}".format(e))

# 回滚修改

self.conn.rollback()

if __name__ == '__main__':

mydb = MysqlDb()

r = mydb.query("select * from `users`","all")

print(r)

mydb.execute("insert into `users` (`id`,`name`) values(0,'bob')")

print(r)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值