百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Python连接数据库的三种方式(python中怎么连接数据库)

sinye56 2024-10-04 23:53 8 浏览 0 评论

在日常的工作中,尤其是在国产化替代过程中,会接触到各种不同的数据库,为了简化自己的操作步骤,减少出错。可以用脚本替代的工作,均通过脚本的方式来进行操作。但是数据库多了,每个产品对各种语言的支持度不同,有的有python模块,有的没有。特此对Python连接数据库的方式进行小结,便于后期使用。

  • 通过相应的数据库模块的方式来连接数据库,需要安装对应的数据库模块。比如:pymysql、psycopg2…

简单的操作sample:

import pymysql    ###导入pymysql模块
conn_mysql=pymysql.connect(
           host="100.100.100.100",
           user="test",
           password="test",
           database="test",
           port = 3306
           )    ##定义MySQL的相关连接信息
cursor_mysql=conn_mysql.cursor(pymysql.cursors.DictCursor)  ##建立数据库连接
cursor_mysql.execute(get_table_name)  ##执行SQL语句
result_all=cursor_mysql.fetchall()  ###语句执行的所有结果集
conn_mysql.close()    ###使用完毕后,关闭连接


  • 通过ODBC的方式连接数据库,需要安装的模块pyodbc,配置对应数据库的ODBC相关信息。
   配置ODBC相关信息(通过odbcinst -j来确认ODBC所使用配置文件顺序)
more ~/.odbc.ini 
[TEST]
HOST=100.100.100.100
PORT = 22222
UID = test
PWD = test
DRIVER =       ##连接数据库所用的DRIVE

python文件内容简单内容如下(异常会直接退出脚本):
import pyodbc

#####建立连接
try:
    cnxn = pyodbc.connect('DSN=%s;UID=%s;PWD=%s'  %(get_dsn,get_uid,get_pwd))
    cnxn.autocommit = False
    cur = cnxn.cursor()
except Exception  as e:
    print 
    print ("ERROR:%s" %(e))
    print 
    sys.exit()

####执行语句相关部分
def  odbc_process(sql):
  try:
    cur.execute(sql)
    return cur.fetchall()      ###获取所有结果集
  except Exception as e:
    print()
    print("ERROR:%s" %(e))
    print()
    sys.exit()
  • 通过JDBC的方式连接数据库,需要安装的模块jaydebeapi,和对应数据库的jar包
import jaydebeapi

source_url = 'jdbc:oracle:thin:@//10.10.10.10:1521/Orcl'
source_driver = 'oracle.jdbc.driver.OracleDriver'
source_user = 'test'
source_password = 'test'
source_jarFile = 'ojdbc6-11.2.0.3.jar'


source_conn = jaydebeapi.connect(jclassname=source_driver, url=source_url, driver_args=[source_user, source_password], jars=source_jarFile)
source_curs = source_conn.cursor()
source_curs.execute('select 1 from dual')
source_result = source_curs.fetchall()


上面就是三种方式的简单介绍,希望对大家有所帮助,选择最适合自己的方式使用即可~



一个小小的问题:

大家如果使用jar包的方式,连接不同的数据库会用什么样的方式呢?会一切顺利么?

有没有碰到如下的报错呢?

“jpype._jclass.NoClassDefFoundError: java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver”


如果碰到此问题,大家是如何解决呢? 欢迎留言讨论,谢谢~

相关推荐

Linux基础知识之修改root用户密码

现象:Linux修改密码出现:Authenticationtokenmanipulationerror。故障解决办法:进入单用户,执行pwconv,再执行passwdroot。...

Linux如何修改远程访问端口

对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。对于默认端口而言,其相关的配置位于/...

如何批量更改文件的权限

如果你发觉一个目录结构下的大量文件权限(读、写、可执行)很乱时,可以执行以下两个命令批量修正:批量修改文件夹的权限chmod755-Rdir_name批量修改文件的权限finddir_nam...

CentOS「linux」学习笔记10:修改文件和目录权限

?linux基础操作:主要介绍了修改文件和目录的权限及chown和chgrp高级用法6.chmod修改权限1:字母方式[修改文件或目录的权限]u代表所属者,g代表所属组,o代表其他组的用户,a代表所有...

Linux下更改串口的权限

问题描述我在Ubuntu中使用ArduinoIDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。...

Linux chown命令:修改文件和目录的所有者和所属组

chown命令,可以认为是"changeowner"的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。当只需要修改所有者时,可使用...

chmod修改文件夹及子目录权限的方法

chmod修改文件夹及子目录权限的方法打开终端进入你需要修改的目录然后执行下面这条命令chmod777*-R全部子目录及文件权限改为777查看linux文件的权限:ls-l文件名称查看li...

Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权...

完蛋了!我不小心把Linux所有的文件权限修改了!在线等修复!

最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。...

linux改变安全性设置-改变所属关系

CentOS7.3学习笔记总结(五十八)-改变安全性设置-改变所属关系在以前的文章里,我介绍过linux文件权限,感兴趣的朋友可以关注我,阅读一下这篇文章。这里我们不在做过的介绍,注重介绍改变文件或者...

Python基础到实战一飞冲天(一)--linux基础(七)修改权限chmod

#07_Python基础到实战一飞冲天(一)--linux基础(七)--修改权限chmod-root-groupadd-groupdel-chgrp-username-passwd...

linux更改用户权限为root权限方法大全

背景在使用linux系统时,经常会遇到需要修改用户权限为root权限。通过修改用户所属群组groupid为root,此操作只能使普通用户实现享有部分root权限,普通用户仍不能像root用户一样享有超...

怎么用ip命令在linux中添加路由表项?

在Linux中添加路由表项,可以使用ip命令的route子命令。添加路由表项的基本语法如下:sudoiprouteadd<network>via<gateway>这...

Linux配置网络

1、网卡名配置相关文件回到顶部网卡名命名规则文件:/etc/udev/rules.d/70-persistent-net.rules#PCIdevice0x8086:0x100f(e1000)...

Linux系列---网络配置文件

1.网卡配置文件在/etc/sysconfig/network-scripts/下:[root@oldboynetwork-scripts]#ls/etc/sysconfig/network-s...

取消回复欢迎 发表评论: