jmeter笔记(二):通过jython连接Oracle数据库

(一)说明

        本文说明在jmeter中如何通过jython连接Oracle数据库。

        因为python cx_oracle库底层是用C实现的,在jython中用不了,这里用纯Java实现的zxJDBC。

        zxJDBC 符合  Python DB API  规范。

        zxJDBC已经整合到jython中,所以不需要另外安装。

        说明文档:http://web.mit.edu/jython/jythonRelease_2_2alpha1/Doc/zxjdbc.html

(二)通过zxJDBC连接Oracle数据

    自己电脑没装Oracle数据库,就不截运行成功的图了,不过在公司内网是验证过没问题的。

    这里要注意2点:

         1、要设置默认编码格式,不然会报错

         2、字典DADABASE中NAME指的是INSTANCE_NAME,数据库中用下面的SQL查询可以得到

            SELECT INSTANCE_NAME FROM v$instance

 1 import sys
 2 sys.path.append('C:\Users\laiqu\AppData\Local\Programs\Python\Python27\Lib')
 3 sys.path.append('C:\Users\laiqu\AppData\Local\Programs\Python\Python27\Lib\site-packages')
 4 reload(sys)   
 5 sys.setdefaultencoding('utf8')     #设置默认编码方式
 6 from com.ziclix.python.sql import zxJDBC
 7 
 8 DADABASE = {
 9     'NAME': 'XXXX',  # 数据库实例名
10     'USER': 'XXX',  # 用户名
11     'PASSWORD': 'XX',  # 密码
12     'HOST': 'XX',  # 服务器ID(或域名)
13     'PORT': 'XXX',  # 端口号
14 
15 }
16 
17 def select(query_sql):
18     driver = "oracle.jdbc.driver.OracleDriver"
19     url = "jdbc:oracle:thin:@{}:{}:{}".format(DADABASE["HOST"],DADABASE["PORT"],DADABASE["NAME"])
20     conn = zxJDBC.connect(url , DADABASE["USER"] , DADABASE["PASSWORD"] , driver)
21     cur = conn.cursor()
22     cur.execute(query_sql)
23     data = cur.fetchall()
24     conn.close()
25     return data
26 
27 data = select(query_sql="select * from XXX where rownum < 3")
posted @ 2020-04-23 23:11  free赖权华  阅读(368)  评论(0编辑  收藏  举报