使用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 sql_mode修改不生效的原因及解决
May 07 MySQL
MySQL下使用Inplace和Online方式创建索引的教程
May 26 MySQL
MySQL CHAR和VARCHAR该如何选择
May 31 MySQL
如何自己动手写SQL执行引擎
Jun 02 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
MySQL数据库10秒内插入百万条数据的实现
Nov 01 MySQL
防止web项目中的SQL注入
Dec 06 MySQL
Mysql超详细讲解死锁问题的理解
Apr 01 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
SQL Server数据库的三种创建方法汇总
May 08 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
解决python读取几千万行的大表内存问题
2018/06/26 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
大学新闻系自荐书
2014/05/31 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
司机岗位职责
2015/02/04 职场文书
2015年度物流工作总结
2015/04/30 职场文书
德能勤绩工作总结
2015/08/11 职场文书