使用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 相关文章推荐
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
MySQL索引失效的典型案例
Jun 05 MySQL
MySQL 数据恢复的多种方法汇总
Jun 21 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
Node-Red实现MySQL数据库连接的方法
Aug 07 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
解决Mysql中的innoDB幻读问题
Apr 29 MySQL
MySQL示例讲解数据库约束以及表的设计
Jun 16 MySQL
DQL数据查询语句使用示例
Dec 24 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
终于听上了直流胆调频
2021/03/02 无线电
PHP新手上路(七)
2006/10/09 PHP
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
PHP中session变量的销毁
2014/02/27 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
js中判断控件是否存在
2010/08/25 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python语言基本语句用法总结
2019/06/11 Python
python实现图片九宫格分割
2021/03/07 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
Python post请求实现代码实例
2020/02/28 Python
临床医师专业个人自我评价范文
2013/11/07 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
小学教师管理制度
2014/01/18 职场文书
教师党性分析材料
2014/02/04 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书