瀏覽代碼

PR369 [jdbc] Use CLASSPATH value for creating JavaGateway and load JDBC driver class

https://github.com/cloudera/hue/pull/369
Shahab Tajik 9 年之前
父節點
當前提交
195cd49
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      desktop/libs/librdbms/src/librdbms/jdbc.py

+ 3 - 2
desktop/libs/librdbms/src/librdbms/jdbc.py

@@ -17,7 +17,7 @@
 
 import logging
 import sys
-
+import os
 
 LOG = logging.getLogger(__name__)
 
@@ -51,7 +51,7 @@ class Jdbc():
     if 'py4j' not in sys.modules:
       raise Exception('Required py4j module is not imported.')
 
-    self.gateway = JavaGateway()
+    self.gateway = JavaGateway.launch_gateway(classpath=os.environ['CLASSPATH'])
 
     self.jdbc_driver = driver_name
     self.db_url = url
@@ -62,6 +62,7 @@ class Jdbc():
 
   def connect(self):
     if self.conn is None:
+      self.gateway.jvm.Class.forName(self.jdbc_driver)
       self.conn = self.gateway.jvm.java.sql.DriverManager.getConnection(self.db_url, self.username, self.password)
 
   def cursor(self):