SQLAlchemy Core中的异常及事务处理样码
2023-09-27 14:28:45 时间
from datetime import datetime
from sqlalchemy import (MetaData, Table, Column, Integer, Numeric, String, Boolean,
DateTime, ForeignKey, ForeignKey, create_engine, CheckConstraint)
from sqlalchemy import (insert, select, update, delete, text, desc, cast, and_, or_, not_)
from sqlalchemy.sql import func
from sqlalchemy.exc import IntegrityError
metadata = MetaData()
cookies = Table(cookies, metadata,
Column(cookie_id, Integer(), primary_key=True),
Column(cookie_name, String(50), index=True),
Column(cookie_recipe_url, String(255)),
Column(cookie_sku, String(55)),
Column(quantity, Integer()),
Column(unit_cost, Numeric(12, 2)),
CheckConstraint(quantity = 0, name=quantity_positive)
users = Table(users, metadata,
Column(user_id, Integer(), primary_key=True),
Column(username, String(15), nullable=False, unique=True),
Column(email_address, String(255), nullable=False),
Column(phone, String(20), nullable=False),
Column(password ,String(25), nullable=False),
Column(created_on, DateTime(), default=datetime.now),
Column(updated_on, DateTime(), default=datetime.now, onupdate=datetime.now)
orders = Table(orders, metadata,
Column(order_id, Integer(), primary_key=True),
Column(user_id, ForeignKey(users.user_id)),
Column(shipped, Boolean(), default=False)
line_items = Table(line_items, metadata,
Column(line_items_id, Integer(), primary_key=True),
Column(order_id, ForeignKey(orders.order_id)),
Column(cookie_id, ForeignKey(cookies.cookie_id)),
Column(quantity, Integer()),
Column(extended_cost, Numeric(12, 2))
engine = create_engine(mysql+pymysql://u:p@ip:3306/cookies)
metadata.create_all(engine)
connection = engine.connect()
def ship_it(order_id):
s = select([line_items.c.cookie_id, line_items.c.quantity])
s = s.where(line_items.c.order_id == order_id)
transaction = connection.begin()
cookies_to_ship = connection.execute(s)
try:
for cookie in cookies_to_ship:
u = update(cookies).where(cookies.c.cookie_id==cookie.cookie_id)
u = u.values(quantity = cookies.c.quantity - cookie.quantity)
result = connection.execute(u)
u = update(orders).where(orders.c.order_id == order_id)
u = u.values(shipped=True)
result = connection.execute(u)
print("Shipped order ID: {}".format(order_id))
transaction.commit()
except IntegrityError as error:
transaction.rollback()
print(error)
ins = insert(users).values(
username="cookiemon",
email_address="mon@cookie.com",
phone="111-111-1111",
password="password"
result = connection.execute(ins)
except IntegrityError as error:
pass
ins = cookies.insert()
inventory_list = [
cookie_name: chocolate chip,
cookie_recipe_url: http://some.aweso.me/cookie/recipe.html,
cookie_sku: CC01,
quantity: 12,
unit_cost: 0.50
cookie_name: dark chocolate chip,
cookie_recipe_url: http://some.aweso.me/cookie/recipe_dark.html,
cookie_sku: CC02,
quantity: 1,
unit_cost: 0.75
result = connection.execute(ins, inventory_list)
s = select([cookies.c.cookie_name, cookies.c.quantity]) connection.execute(s).fetchall() ship_it(20)
Java+Oracle实现事务——JDBC事务 J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下如何实现JDBC事务。 JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自动提交和手动提交,默认是自动提交。
我为什么用 SQLite 和 FMDB 而不用 Core Data 凭良心讲,我不能告诉你不去使用Core Data。它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要。 更重要的是,不值得花时间和精力去写自己的系统去代替它。真的,使用Core Data吧。
from sqlalchemy import Column, String, create_engine, Integer, Date, Float, ForeignKey from sqlalchemy.
本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
本文已收录在本人整编的JAVA技术资源目录中,微信用户请点击头像查看《JAVA通关秘籍》 1. 数据库中的事务 Java中的事务管理,最终都是体现在数据上,因此,了解数据库对事务的处理是非常必要的
s = select([cookies.c.cookie_name, cookies.c.quantity]) connection.execute(s).fetchall() ship_it(20)
Java+Oracle实现事务——JDBC事务 J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下如何实现JDBC事务。 JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自动提交和手动提交,默认是自动提交。
我为什么用 SQLite 和 FMDB 而不用 Core Data 凭良心讲,我不能告诉你不去使用Core Data。它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要。 更重要的是,不值得花时间和精力去写自己的系统去代替它。真的,使用Core Data吧。
from sqlalchemy import Column, String, create_engine, Integer, Date, Float, ForeignKey from sqlalchemy.
本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
本文已收录在本人整编的JAVA技术资源目录中,微信用户请点击头像查看《JAVA通关秘籍》 1. 数据库中的事务 Java中的事务管理,最终都是体现在数据上,因此,了解数据库对事务的处理是非常必要的
相关文章
- 【转】在.net Core 中像以前那样的使用HttpContext.Current
- odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex
- java.lang.NoSuchMethodError: org.springframework.core.ResolvableType.forInstance 错误解决
- Asp.net Core 学习笔记 Azure Storage
- ASP.NET Core 使用UrlFirewall对请求进行过滤
- [ARM异常]-异常进入和异常退出时的arm core的硬件自动的行为
- .NET Core 2.0控制台程序(Console)安装配置使用NLog的方法及示例代码
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
- 大数据Spark(十九):Spark Core的共享变量
- asp dotnet core 通过图片统计 csdn 用户访问
- .NET Core项目自动化测试和代码覆盖率审查