使用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 22 MySQL
MySQL的join buffer原理
Apr 29 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
MySQL系列之十五 MySQL常用配置和性能压力测试
Jul 02 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
MySQL分区路径子分区再分区
Apr 13 MySQL
详解Mysq MVCC多版本的并发控制
Apr 29 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
php header示例代码(推荐)
2010/09/08 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
smarty简单应用实例
2015/11/03 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
学习vue.js计算属性
2016/12/03 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
Python列表生成器的循环技巧分享
2015/03/06 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
详解python之协程gevent模块
2018/06/14 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Python最小二乘法矩阵
2019/01/02 Python
Python向excel中写入数据的方法
2019/05/05 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
大学生自荐书范文
2013/12/10 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang