Java教程

数据库的操作

本文主要是介绍数据库的操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.数据库的操作

1.1手工操作数据库

我这里用的是Navicat来进行手工连接数据库的,只要是可以连接数据库的软件都可以

 连接成功后,可以打开对应的数据库下的表查看数据

1.2pymysql操作数据库

pymysql是第三方库,所以需要安装pip install pymysql

安装后导入pymysql包就可以使用了,import pymysql

数据库的操作步骤:

  1. 建立连接(认识小姐姐/小哥哥,加个微信)
  2. 得到一个游标的对象(数据库操作都是通过游标)(和小姐姐/小哥哥约会,见面的机会)
  3. execute(sql)执行sql语句(看电影)
  4. 获取执行sql语句的结果(反馈结果)
  5. 关闭游标对象(再见)
  6. 关闭连接(微信晚安)
import pymysql

# 建立连接
host = 'api.lemonban.com'
port = 3306
username = 'future'
password = '123456'
db_name = 'futureloan'
# 得到连接对象
connection = pymysql.connect(host=host,
                             port=port,
                             user=username,
                             password=password,
                             database=db_name)
# 获取游标对象,就相当于读取数据库内容时的光标
cursor = connection.cursor()
print(cursor)
# 执行sql语句(最好是不要一次取太多条数据,不然会很慢)
sql = 'select * from member limit 5;'
cursor.execute(sql)
# 获取结果
# 得到sql语句查询的一条数据
data1 = cursor.fetchone()
print(data1)
# 得到sql语句查询的多条数据
data = cursor.fetchall()
print(data)

 运行结果:

查询一条数据和查询多条数据代码位置互换,得到的结果

因为先得到了5条数据,光标已经在第5条数据后面了,sql语句只查询了5条数据,因此再查询一条数据时显示None

注意:尽量避免使用一个游标进行多次操作

修改后的代码如下:

import pymysql

# 建立连接
host = 'api.lemonban.com'
port = 3306
username = 'future'
password = '123456'
db_name = 'futureloan'
# 得到连接对象
connection = pymysql.connect(host=host,
                             port=port,
                             user=username,
                             password=password,
                             database=db_name)
# 获取游标对象,就相当于读取数据库内容时的光标
cursor = connection.cursor()
print(cursor)
# 执行sql语句(最好是不要一次取太多条数据,不然会很慢)
sql = 'select * from member limit 5;'
cursor.execute(sql)
# 获取结果
# 得到sql语句查询的多条数据
data = cursor.fetchall()
print(data)
# 获取第二个游标并执行sql语句,得到查询结果
cursor2 = connection.cursor()
sql = 'select * from member limit 5;'
cursor2.execute(sql)
# 得到sql语句查询的一条数据
data1 = cursor2.fetchone()
print(data1)
# 关闭游标
cursor.close()
cursor2.close()
# 关闭连接
connection.close()

运行结果

注意:通常不会同时使用两个游标的

2.数据库操作的封装

import pymysql


class DBhandler():
    def __init__(self, host='api.lemonban.com',
                 port=3306,
                 username='future',
                 password='123456',
                 db_name='futureloan'):
        # 得到一个连接对象
        # 注意connection是类属性,前面一定要加self
        self.connection = pymysql.connect(host=host,
                                          port=port,
                                          user=username,
                                          password=password,
                                          database=db_name)

    def qurey_one(self, sql):
        # 查询一条数据
        # 得到游标
        cursor = self.connection.cursor()
        # 提交(更新数据库状态)
        self.connection.commit()
        # 执行sql语句
        cursor.execute(sql)
        # 得到查询结果
        data = cursor.fetchone()
        # 关闭游标
        cursor.close()
        return data

    def qurey_all(self, sql):
        # 查询多条记录
        cursor = self.connection.cursor()
        self.connection.commit()
        cursor.execute(sql)
        data = cursor.fetchall()
        cursor.close()
        return data

    def close(self):
        self.connection.close()


# 简单的测试代码(只有右击运行时才会运行,其他模块导入时,不会执行此代码)
if __name__ == '__main__':
    db = DBhandler()
    res = db.qurey_one('select * from member limit 5;')
    print(res)
    # 一定要关闭连接
    db.close()

 运行结果:

注意:

commit()提交,更新数据库状态,相当于多个人同时操作数据库时,你如果不更新拿到的数据不是最新的

一定要进行游标关闭,连接关闭

这篇关于数据库的操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!