使用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 Shell的介绍以及安装
Apr 24 MySQL
MySQL COUNT函数的使用与优化
May 10 MySQL
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
MySQL中连接查询和子查询的问题
Sep 04 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php Ajax乱码
2008/04/09 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
大家未必知道的Js技巧收藏
2008/04/07 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
在Python下尝试多线程编程
2015/04/28 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
python使用Geany编辑器配置方法
2020/02/21 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
毕业生求职简历中的自我评价
2013/10/18 职场文书
法律进社区实施方案
2014/03/21 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
学生操行评语大全
2014/04/24 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
Python基础之Socket通信原理
2021/04/22 Python
python基础之函数的定义和调用
2021/10/24 Python