当前位置:  开发笔记 > 编程语言 > 正文

iBATIS for Python?

如何解决《iBATISforPython?》经验,为你挑选了1个好方法。

在我目前的演出中,我们使用iBATIS通过Java来CRUD我们的数据库.我喜欢该工具的抽象特性,特别是在使用遗留数据库时,因为它不会对您强加自己的语法.

我正在寻找这个库的Python模拟,因为该网站只提供Java/.NET/Ruby版本.如果我不需要,我不想切换到Jython.

是否还有其他类似于iBATIS功能的项目用于Python?



1> S.Lott..:

iBatis在XML文件中隔离SQL DML(或SQL的定义).它专门关注SQL与其他地方定义的某些对象模型之间的映射.

SQL Alchemy可以做到这一点 - 但它并不是一个非常完整的解决方案.与iBatis一样,您只能拥有SQL表定义以及表和Python类定义之间的映射.

更完整的是拥有一个类定义,它也是 SQL数据库定义.如果类定义生成SQL表DDL以及查询和处理DML,那就更完整了.

我在SQLAlchemy和Django ORM之间翻转.SQLAlchemy可以像iBatis一样使用.但我更喜欢将对象设计放在中心位置,并让工具集从对象中派生出SQL实现.

我将SQLAlchemy用于大型批量独立项目.数据库加载,模式转换,DW报告等运行良好.在这些项目中,重点是数据的关系视图,而不是对象模型.例如,生成的SQL可以移动到PL/SQL存储过程中.

我将Django用于Web应用程序,利用其内置的ORM功能.您可以通过一些工作将Django ORM与Django环境的其余部分隔离开来.您可以提供全局设置以将应用程序绑定到特定数据库,而无需使用单独的设置模块.

Django包含许多可以管理SQL实现的常见关系(外键,多对多,一对一).它为附加的数据库生成密钥和索引定义.

如果您的问题主要是面向对象的,并且数据库用于持久性,那么Django的几乎透明的ORM层具有优势.

如果您的问题主要是关系型的,并且SQL处理中心,则在SQLAlchemy中查看生成的SQL的功能具有优势.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有