一、前言
??在项目开发中,数据库应用必不可少。虽然数据库的种类有很多,如SQLite、MySQL、Oracle等,但是它们的功能基本是一样都是一样的,为对数据库统一的操作,大多数语言都提供了简单的、标准化的接口(API)。在Python Database API 2.0规范中,定义了Python数据库API接口的各个部分,如模块接口、连接对象、游标对象、类型对象和构造器、DB API的可选扩展以及可选的错误处理机制等。本文将重点介绍数据库的连接对象和游标对象。
二、连接对象
??数据库连接对象(Connection Object)主要提供获取数据库游标对象和提交/回滚事务的方法,以及如何关闭数据库连接。
1.获取连接对象
??如何获取连接对象呢?这就需要使用connect()函数。该函数有多个参数,具体使用那个参数,取决于使用的数据库类型。例如,需要访问Oracle数据库和MySQL数据库,必须同时下载Oracle和MySQL数据库模块。这些模块在获取连接对象时,都需要使用connect()函数。connect()函数常用的参数及说明如下表:
参数 | 说明 |
---|
dsn | 数据源名称,给出该参数表示数据库依赖 | user | 用户名 | password | 用户密码 | host | 主机名 | database | 数据库名 |
??例如,使用PyMySQL模块连接MySQL数据库,示例代码如下:
import pymysql
conn = pymysql.connect(
host="localhost",
password="123456",
db="test",
charset="utf8",
cursorclass=pymysql.cursors.DictCursor)
说明: 上述代码中,pymysql.connect()方法使用的参数与上表并不完全相同。在使用时,要以具体的数据库模块为准。
2.连接对象的方法
??connect()函数返回连接对象,这个对象表示目前和数据库的会话,连接对象支持的方法如下表所示:
方法名 | 说明 |
---|
close() | 关闭数据库连接 | commit() | 提交事务 | rollback() | 回滚事务 | cursor() | 获取游标对象,操作数据库,如执行DML操作,调用存储过程等 |
??事务主要用于处理数据量大、复杂度高的数据。如果操作的是一系列的动作,比如小菜鸡给小白转账,有如下2个操作:
??这时使用事务可以维护数据库的完整性,保证2个操作要么全部执行,要么全部不执行。
三、游标对象
??游标对象(Cursor Object)代表数据中的游标,用于指示抓取数据操作的上下文。主要提供执行SQL语句、调用存储过程、获取查询结果等方法。
??如何获取游标对象呢?通过连接对象的cursor()方法,可以获取到游标对象。游标对象的属性如下所示:
- description:数据库列类型和值的描述信息。
- rowcount:回返结果的行数统计信息,如SELECT,UPDATE,CALLPROC等。
??游标对象的方法如下表所示:
方法名 | 说明 |
---|
callproc(procname,[,parameters]) | 调用存储过程,需要数据库支持 | close() | 关闭当前游标 | execute(operation,[,parameters]) | 执行数据库操作,SQL语句或者数据库命令 | executemany(operation,seq_of_params) | 用于批量操作,如批量更新 | fetchone() | 获取查询结果的下一条记录 | fetchmany(size) | 获取指定量的记录 | fetchall() | 获取结果集的所有记录 | nextset() | 跳至下一个可用的结果集 | arraysize | 指定使用fetchmany()获取的行数,默认为1 | setinputsizes(sizes) | 设置在调用execute*()方法时分配的内存区域大小 | setoutputsize(sizes) | 设置列缓冲区大小,对大数据列如LONGS和BLOBS尤其有用 |
|