使用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索引篇之千万级数据实战测试
Apr 05 MySQL
Mysql 如何批量插入数据
Apr 06 MySQL
mysql优化
Apr 06 MySQL
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
分析mysql中一条SQL查询语句是如何执行的
Jun 21 MySQL
MySQL的全局锁和表级锁的具体使用
Aug 23 MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
关于mysql中string和number的转换问题
Jun 14 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
php 冒泡排序 交换排序法
2011/05/10 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
Html中 IFrame的用法及注意点
2016/12/22 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
Python列表list数组array用法实例解析
2014/10/28 Python
Python与Redis的连接教程
2015/04/22 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
物流经理自我评价
2013/09/23 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
车工岗位职责
2013/11/26 职场文书
拓展训练激励口号
2014/06/17 职场文书
安全环保演讲稿
2014/08/28 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
幼儿园感谢信
2015/01/21 职场文书
亲属关系公证书样本
2015/01/23 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
MySQL触发器的使用
2021/05/24 MySQL
Django框架中视图的用法
2022/06/10 Python