如何用cx_Oracle连接Oracle11g?求connect方法参数说明(附Java示例)
使用cx_Oracle连接Oracle 11g的参数对应方案
嘿,刚好帮你把Java里的连接配置对应到cx_Oracle的用法上,完全可以参照你已有的Java代码来设置参数:
首先看你Java里的核心连接信息:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","System","mypassword");
对应的cx_Oracle连接参数可以这样对应:
user:对应Java里的第二个参数"System"password:对应Java里的第三个参数"mypassword"dsn:对应JDBC URL中@后面的部分localhost:1521:xe(这里是SID模式,cx_Oracle也支持用服务名的写法localhost:1521/xe,两种都可以)
给你一个完整的可运行示例代码:
import cx_Oracle # 方式1:分参数传入(更清晰) try: conn = cx_Oracle.connect( user="System", password="mypassword", dsn="localhost:1521:xe" # 或者写成 "localhost:1521/xe" 用服务名模式 ) print("连接成功!") # 简单测试查询 cursor = conn.cursor() cursor.execute("SELECT SYSDATE FROM DUAL") print("当前数据库时间:", cursor.fetchone()[0]) except cx_Oracle.Error as e: print(f"连接出错:{e}") finally: # 确保资源关闭 if 'cursor' in locals(): cursor.close() if 'conn' in locals() and conn.is_connected(): conn.close()
另外还有一种更简洁的写法,直接把所有信息拼成一个连接字符串:
conn = cx_Oracle.connect("System/mypassword@localhost:1521:xe")
小提示:如果连接失败,记得检查这几点:
- 确认Oracle 11g服务正在运行,端口1521对外开放
- 已经安装了对应版本的cx_Oracle(建议用7.x版本,对Oracle 11g兼容性更好)
- 本地已经配置好Oracle客户端(比如Instant Client),并设置了正确的环境变量
内容的提问来源于stack exchange,提问作者Kaze
相关产品推荐
相关产品推荐

