前言
因为ACCESS主要还是微软的那一套,所以WIN平台的连接方式不再赘述,网上方案很多。
LINUX上的连接,主要还是分为ODBC和JDBC
ODBC方案
包安装
linux需安装的包:mdbtools, unixODBC, libmdbodbc
python需安装的包:pyodbc或pypyodbc
配置
配置/etc/odbcinst.ini
[MDBToolsODBC]Description = MDB Tools ODBCDriver = /usr/lib/libmdbodbc.so.0Setup =FileUsage =CPTimeout =CPReuse =
配置/etc/odbc.ini 或者 ~/.odbc.ini
[mytest]Description = Microsoft Access Try DBDriver = MDBToolsODBCDatabase = /path/mytest.mdbServername = localhostUsername =Password =port = 5432
DEMO代码
import pyodbcconn = pyodbc.connect('DSN=mytest');cur = conn.cursor()cur.execute('select * from test')cur.fetchall()
JDBC方案
驱动下载
UCanAccess JDBC驱动程序下载
实现方案
有两种方法可以实现:JayDeBeApi和Jython.
JayDeBeApi(推荐)
包安装
pip install JPype1==0.6.3 JayDeBeApi==1.1.1--JPype1的更高版本存在问题,所以安装0.6.3版本
PS:还需要jre环境
DEMO代码如下:
import jaydebeapidb_path = "/path/mytest.mdb"ucanaccess_jars = ["/path/UCanAccess-4.0.4-bin/ucanaccess-4.0.4.jar","/path/UCanAccess-4.0.4-bin/lib/commons-lang-2.6.jar","/path/UCanAccess-4.0.4-bin/lib/commons-logging-1.1.3.jar","/path/UCanAccess-4.0.4-bin/lib/hsqldb.jar","/path/UCanAccess-4.0.4-bin/lib/jackcess-2.1.11.jar",]classpath = ":".join(ucanaccess_jars)conn = jaydebeapi.connect("net.ucanaccess.jdbc.UcanaccessDriver",f"jdbc:ucanaccess://{db_path}",["", ""],classpath)cur = cnxn.cursor()cur.execute("select * from test")cur.fetchall()
Jython
Jython是Python的单独实现,它只支持Python 2.7,目前不再处于活动开发阶段。从某种意义上说执行不是python程序了,而是jython程序,所以这里不进行详细描述。
如果觉得《LINUX通过python连接ACCESS(.mdb和.accdb文件)数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!