使用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 相关文章推荐
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
为什么MySQL选择Repeatable Read作为默认隔离级别
Jul 26 MySQL
MySQL约束超详解
Sep 04 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySQL索引 高效获取数据的数据结构
May 02 MySQL
MYSQL常用函数介绍
May 05 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
Python 文件重命名工具代码
2009/07/26 Python
python实现的一个火车票转让信息采集器
2014/07/09 Python
Python单链表简单实现代码
2016/04/27 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
python实现加密的方式总结
2020/01/19 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
Python eval函数原理及用法解析
2020/11/14 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
物业保安员岗位职责制度
2014/01/30 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
办理护照工作证明
2014/10/10 职场文书
法制教育观后感
2015/06/17 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
详细总结Python常见的安全问题
2021/05/21 Python
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android