使用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 kill不掉线程的原因
May 07 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
Mysql中常用的join连接方式
May 11 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 MySQL
SQLServer常见数学函数梳理总结
Aug 05 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
php和asp语法上的区别总结
2019/05/12 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
vue2.0之多页面的开发的示例
2018/01/30 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
发布你的Python模块详解
2016/09/15 Python
python3实现基于用户的协同过滤
2018/05/31 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
应届生法律顾问求职信
2013/11/19 职场文书
双方协议书
2014/04/22 职场文书
媒体宣传策划方案
2014/05/25 职场文书
党员领导干部承诺书
2014/05/28 职场文书
文明寝室标语
2014/06/13 职场文书
班级文化标语
2014/06/23 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS