使用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
Idea连接MySQL数据库出现中文乱码的问题
Apr 14 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
通过shell脚本对mysql的增删改查及my.cnf的配置
Jul 07 MySQL
MySQL约束超详解
Sep 04 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 MySQL
Mysql分库分表之后主键处理的几种方法
Feb 15 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
php构造函数与析构函数
2016/04/23 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
Python多线程学习资料
2012/12/19 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
Python实现简单的语音识别系统
2017/12/13 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
python实现计算器简易版
2020/12/17 Python
师范毕业生求职自荐信
2013/09/25 职场文书
机械专业应届生求职信
2013/12/12 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
学校施工安全责任书
2015/01/29 职场文书
小学教师自我评价
2015/03/04 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS