一直在想程序调DB的表操作能不能简单一些,以前用的java,感觉hibernate,jpa什么的太复杂了,简单做一点点东西,要你把框架先了解一遍,jar包下一堆,配置文件先纠结一顿,然后... 你的热情就浇灭了,也忘记了开始想要干啥了,经常就没有然后了...
最近在看python,刚好看到了sqlalchemy,和自己经常用的oracle结合起来,发现非常简单好用,用sqlalchemy提供的自动反射,提供一个表名称,就直接可以对表进行操作了,简直就是DB操作神器啊。
前提条件:
1. 安装sqlalchemy:这个简单,cmd下面直接运行easy_install sqlalchemy,就OK了,当然了,要联网。
2. 安装cx_Oracle (http://cx-oracle.sourceforge.net/):这个必须要找对应平台的,而且用的数据库也要对应上。我的是windows平台的,11G的oracle DB,但是我却发现,我用"Oracle 11g, python 2.7"的那个安装包,装完是不能访问数据库的,会报什么attribute错误,最后破罐子破摔,下了个"Oracle 10g, python2.7",居然就神奇的能够用上了,不知道为什么。仅供参考,估计有和我一样的。
都装完了以后,就可以敲代码了,我在oracle里面建了一个表,
create table zy_user(name varchar2(10), address varchar2(50))
测试代码如下,测试时候请把DB连接字符串改成自己的:
from sqlalchemy import *
from sqlalchemy.sql import select
from sqlalchemy.schema import *
# create the engine