使用ORM新增数据在Mysql中的操作步骤


Posted in MySQL onJuly 26, 2021

【ORM操作步骤】

  • 构造ORM模型对象
  • 添加到session
  • 提交到数据库
  • 出现异常,回滚事务(可选)

【构造ORM模型对象】

user_obj = User(
username="use1",
password="123456",
real_name = "用户1",
age=12
)

【添加到session】

#  添加1个对象
session.add(user_obj)

#  添加多个对象
session.add_all([user1,user2,user3])

【session的作用】

  • 建立与数据库之间的会话
  • 使用session对数据库中的数据进行增删改查
  • 使用session进行事务控制(提交和回滚)
  • 使用完后需要关闭它  session.close()

【session的创建】

有两种方法,下图代码示例

# 方法一 实例化session
from sqlalchemy.orm import Session

with Session(engine) as session:
    session.add(User())
    session.commit()

#  方法二 使用工厂函数创建
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(engine)

with Session.begin()  as session:
    session.add(User())

【数据提交到数据库】

with Session(engine) as  session:
    session.add(user_obj)
    session.add_all([user1,user1,user1])
    session.commit()

【出现异常,回滚事务】

with Session(engine) as session:
    session.begin()
    try:
        session.add(user1)
        session.add(user2)
    except:
        session.rollback()
        raise
    else:
        session.commit()

【Session对象中其他的常用方法】

1. excute(statement, params=None,*args) 执行SQL查询

2. delete(instance) 物理删除数据

3. get(entity,idnet,*args) 根据主键返回满足条件的ORM对象/None

4. query(*entities,**kwargs)

使用ORM查询,返回Query对象

到此这篇关于使用ORM新增数据在Mysql中的文章就介绍到这了,更多相关ORM mysql数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
Mysql官方性能测试工具mysqlslap的使用简介
May 21 MySQL
MySQL完整性约束的定义与实例教程
May 30 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
MySQL千万级数据表的优化实战记录
Aug 04 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
mysql 获取时间方式
Mar 20 MySQL
MySQL创建管理RANGE分区
Apr 13 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
MySql如何将查询的出来的字段进行转换
Jun 14 MySQL
MySQL事务的隔离级别详情
Jul 15 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
php&java(三)
2006/10/09 PHP
php笔记之常用文件操作
2010/10/12 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
Python continue继续循环用法总结
2018/06/10 Python
python实现简单flappy bird
2018/12/24 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
大学应届生的自我评价
2014/03/06 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js