使用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数字类型自增的坑
May 07 MySQL
详解MySQL主从复制及读写分离
May 07 MySQL
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
MySQL 百万级数据的4种查询优化方式
Jun 07 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MYSQL 运算符总结
Nov 11 MySQL
MySQL创建定时任务
Jan 22 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
MySQL普通表如何转换成分区表
May 30 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
晶体管单管来复再生式收音机
2021/03/02 无线电
yum命令安装php7和相关扩展
2016/07/04 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Django实现学生管理系统
2019/02/26 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
仓库班组长岗位职责
2013/12/12 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
班级寄语大全
2014/04/10 职场文书
简单租房协议书
2014/10/21 职场文书