使用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 角色(role)功能介绍
Apr 24 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
解决Navicat for Mysql连接报错1251的问题(连接失败)
May 27 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
vue二级路由设置方法
2018/02/09 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
python实现类的静态变量用法实例
2015/05/08 Python
python追加元素到列表的方法
2015/07/28 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
Araks官网:纽约内衣品牌
2020/10/15 全球购物
80后职场人的职业生涯规划
2014/03/08 职场文书
给学校的建议书
2014/03/12 职场文书
小学端午节活动方案
2014/03/13 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
组织鉴定材料
2014/06/02 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
个人贷款收入证明
2014/10/26 职场文书
英文慰问信范文
2015/03/24 职场文书
音乐课外活动总结
2015/05/09 职场文书
Python实现照片卡通化
2021/12/06 Python