当前位置: 首页 > 网络应用技术

Python DB-API规范和MySQL连接器 / Python实现

时间:2023-03-07 18:37:56 网络应用技术

  持久性存储在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