持久性存储在3:文件,数据库(关系和非相关类型)和某些混合类型中具有基本的存储机制。文件存储不适合大型项目,并且需要使用数据库存储。MySQL是当前持久存储中最受欢迎的解决方案。
Python访问关系数据库有两种方法。一种是通过Python DB-API和另一个传递数据库接口,以通过ORM访问;DB-API是访问数据库的一组标准或规格。数据库适配器和基础数据库系统提供一致性访问,类似于JAVA.DB-API中的JDBC,已移至PEP 249(DB-API 1.0的旧版本1.0.0.0.0.0.0.0.0.0。PEP 248中的标准已被放弃)。您可以参考官方网站PEP 249 -PYTHON数据库API规范v2.0
MySQL基于PEP 249 DB-API规格访问,类似于Spring Data JPA和Hibernate
有关更多实施,请参阅官方网站
DB-API规格必须提供以下全局属性:
安全级别属性是整数类型,并且有以下选项:
Connect()函数可以将连接对象返回到两个数据库连接。此功能可以使用多个参数的字符串传递数据库连接信息。
特定参数还需要基于适配器(例如ODBC或JDBC API)使用不同的参数,该参数需要大的DSN,并且MySQL连接器不需要使用DSN
连接对象是一个特定的数据库连接,可用于创建光标。SQL语句使用光标执行。连接对象不包含任何属性,但它包含以下方法
建立连接后,您可以与数据库注释进行通信。光标允许用户提交数据库命令并获得执行结果。DB-API规范定义了光标的函数。访问不同数据库时确保一致性的函数
光标可以执行查询或其他命令,您可以通过执行和执行人员执行一个或多个命令,并支持结果的集中行或多行结果。
光标对象的属性和方法如下:
当arraysize使用fetchmany()或获得多行时,指定了获得的行数,并且默认值为1个连接。执行消息campaign Call Call Call Call()调用存储过程以关闭广告系列以关闭广告系列的消息列表,以关闭该活动执行一个名为执行人的数据库以执行多个命令。指定以获取所有数据的行数()以创建iTerators next()光标光标,以检查下一个data nextset()的下一个结果,以catching fetchmany()获取多线数据。最大输入大小,可选setOutputsize()设置最大的缓冲区以获得最大的缓冲区MySQL连接器是MySQL提供的官方适配器,该适配器基于PEP249规范
MySQL连接器可以通过PIP安装
您也可以通过MySQL的官方网站下载安装程序包
创建MySQL连接的方法有两种。首先是直接传递数据连接信息以创建连接
没有异常连接
第二种方法是传递配置,该配置包含配置中的数据库连接信息
通过光标执行SQL语句,将代码添加到上面脚本的尾部
数据线存储在光标中。这些数据存储在元型类型的类型中。可以通过索引获得指定列的元素
当需要执行批处理操作时,可以通过相同的效果达到SQL和执行函数。
实现批次插入功能
SQL不执行异常,并成功插入数据库
通常通过por_id =?只有一个数据才能找到一个数据,但是通过拼接添加或true可以使情况失败,然后检查所有数据。所以
Pre -opompilation SQL Pre -opilation SQL是数据库将SQL语句提前编译为辅助系统,因此将重复改善同一SQL语句的效率
在预填充过程中,将解析关键字。编译的SQL语句将传输到参数中,并将字符串视为字符串。
注意预填充和通过参数。尽管使用%s的预填充和使用用于位置,但您不得通过%传递参数(参数1,参数2).symbol
仅找到符合位置条件的数据,并避免了SQL注入
查看数据库,数据已成功插入
对异常情况进行示例,将数据库连接密码更改为错误的密码,是否可以捕获异常
除了代码之外,添加判断力并回滚
数据库连接是关键,有限,昂贵的资源,在高并发执行期间特别突出。建立和释放连接还需要三个握手,四个波,还需要检查数据库连接信息。这将导致导致数据库连接信息。某些资源开销,数据库连接池将事先创建一些数据库连接,以避免重复创建并关闭程序的连接
数据库连接池是通过mysql.connector.pooling下的MySqlConnectionPool函数创建的。
MySQL连接器可以通过执行删除语句执行删除操作。删除语句取决于交易。删除后
SQL执行不是异常
删除的第二种方法是截断删除,而不是依赖交易
执行截断SQL DELETION.CURSOR的执行函数只能执行SQL语句
原始:https://juejin.cn/post/70964205882120740