当前位置:首页>python>python+jaydebeapi连接不同类型的数据库

python+jaydebeapi连接不同类型的数据库

  • 2026-09-09 03:38:54
python+jaydebeapi连接不同类型的数据库
TECH NOTE · 教程2022.09.26

python+jaydebeapi连接不同类 · jaydebeapi

使用jaydebeapi连接不同类型的数据库

DOODLE

使用jaydebeapi连接不同类型的数据库

JAYDEBEAPIPYTHON

使用jaydebeapi连接不同类型的数据库

若是behave构建的项目,建议使用behave-db,详见 <https://github.com/M-HALLIDAY/behave-db>

01

PART

背景

SECTION

需求是程序的运行环境是不确定的,可能是Windows,也可能是linux,数据库也是多种多样的(mysql、oracle、pg等),但是所需要执行的sql语句都是相同的,如何做很小的改动就能够执行相同的sql语句。

02

PART

jaydebeapi

JAYDEBEAPI

jaydebeapi是一个python模块,可通过它来使用java的JDBC来连接数据库。

简单来说,目前几乎所有的数据库都是支持jdbc的,因此几乎都能找到相应的jar包,通过jaydebeapi:https://github.com/baztian/jaydebeapi这个库,只需要把jra放到指定的位置,然后在程序中使用它即可连接数据库。

优点:

 01 

支持的数据库种类多,只要有jar包就可以。

 01 

不需要关心过于程序的运行环境,只要是相同平台下编译出来的包,复制过来就可以直接运行。

缺点:

打包的时候需要连同jar包一起打,可能会导致安装包过大。

SUB安装
...shell

pip install JayDeBeApi

SUB核心代码
...shell

>>> import jaydebeapi

>>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver",  # 包名

...                           "jdbc:hsqldb:mem:.",  # JDBC连接串

...                           ["SA", ""],           # 用户名密码

...                           "/path/to/hsqldb.jar",) # jar包存放的位置

>>> curs = conn.cursor()

>>> curs.execute('create table CUSTOMER'

...              '("CUST_ID" INTEGER not null,'

...              ' "NAME" VARCHAR(50) not null,'

...              ' primary key ("CUST_ID"))'

...             )

>>> curs.execute("insert into CUSTOMER values (?, ?)", (1, 'John'))

>>> curs.execute("select * from CUSTOMER")

>>> curs.fetchall()

[(1, u'John')]

>>> curs.close()

>>> conn.close()

我是 小梦同学,一个爱折腾技术的测试工程师,专注分享踩坑经验

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。

赞
在看
收藏

THANKS FOR READING

最新文章

随机文章