服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

讲解jython访问oracle数据库的具体步骤

【赛迪网-it技术报道】

需要的准备工作:

下载

http://jaist.dl.sourceforge.net/sourceforge/zxjdbc/zxjdbc-2.1.tar.gz

http://jaist.dl.sourceforge.net/sourceforge/jython/jython_installer-2.2.1.jar

根据自己的jdk版本下载对应的ojdbc版本

http://download.oracle.com/otn/utilities_drivers/jdbc/10203/ojdbc14.jar

http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc5.jar

http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc6.jar

安装(需要已经安装了jdk/jre?)

java -jar jython_installer-2.2.1.jar 安装到c:\jython2.2.1

将zxjdbc.jar解压缩到c:\tmp

将mm.mysql-2.0.4-bin.jar复制到c:\tmp

c:\jython2.2.1>set classpath=c:\tmp\ojdbc5.jar;c:\tmp\zxjdbc.jar;%classpath%

启动oracle服务器:

进入jython环境访问oracle

编辑文件c:\tmp\ora.py

from oracle.jdbc.driver import oracledriver
from java.sql import drivermanager


def connect(un, pw, sid, host, port):
driver = oracledriver()
drivermanager.registerdriver(driver)
connection = "jdbc:oracle:thin:@%s:%s:%s" % (host, port, sid)
conn = drivermanager.getconnection(connection, un, pw)
return conn

def dostuff(conn):
stmt = conn.createstatement()
rset = stmt.executequery("select banner from sys.v_$version")
while (rset.next()):
print rset.getstring(1)
stmt.close()

if __name__ == "__main__":
un = 'ebc20'
pw = 'abc'
sid = 'abc'
host = '10.4.231.16'
port = '1521'
conn = connect(un, pw, sid, host, port)
dostuff(conn) 


c:\jython2.2.1>jython \tmp\ora.py
oracle database 10g enterprise edition release 10.2.0.3.0 - 64bi
pl/sql release 10.2.0.3.0 - production
core    10.2.0.3.0      production
tns for hpux: version 10.2.0.3.0 - production
nlsrtl version 10.2.0.3.0 - production

然后用jython自己封装的dbexts库。

最后编辑一个名为dbexts.ini的文件保存到c:\jython2.2.1\lib。

[default]
name=mysqltest

[jdbc]
name=ora
url=jdbc:oracle:thin:@10.4.231.16:1521:abc
user=ebc20
pwd=abc
driver=oracle.jdbc.driver.oracledriver
datahandler=com.ziclix.python.sql.handler.oracledatahandler

进入jython

>>> from dbexts import dbexts
>>> oracon = dbexts("ora", "c:\jython2.2.1\lib\dbexts.ini")

>>> oracon.isql("select * from v$version")


banner
----------------------------------------------------------------
oracle database 10g enterprise edition release 10.2.0.3.0 - 64bi
pl/sql release 10.2.0.3.0 - production
core    10.2.0.3.0      production
tns for hpux: version 10.2.0.3.0 - production
nlsrtl version 10.2.0.3.0 - production

5 rows affected

扫描关注微信公众号