아마도 CLASSPATH 값과 관련이 있습니다. Jython은 JDBC 드라이버의 위치와 관련이 있어야합니다. 리눅스에서 자이 썬 2.7.0를 사용하여 내 경우 , 나는 CLASSPATH 위치는 무엇인가의 interpeter 내부 검토하는 것이 기본적으로 자이 썬 검색 : 자이 썬 interpeter에
이
유형 :
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_151
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/opt/jython/Lib', '__classpath__', '__pyclasspath__/', '/opt/jython/Lib/site-packages']
>>> sys.path.append("/opt/jython/jdbc/derby.jar")
>>> sys.path.append("/opt/jython/jdbc/derbyclient.jar")
>>> sys.path
['', '/opt/jython/Lib', '__classpath__', '__pyclasspath__/', '/opt/jython/Lib/site-packages', '/opt/jython/jdbc/derby.jar', '/opt/jython/jdbc/derbyclient.jar']
>>>
방법이 I 이 문제를 해결하기 위해 발견 된 파일의 드라이버 디렉토리를 sys.path에 호출합니다.
예 :
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_151
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/opt/jython/Lib', '__classpath__', '__pyclasspath__/', '/opt/jython/Lib/site-packages']
>>> sys.path.append("/opt/jython/jdbc/derby.jar")
>>> sys.path.append("/opt/jython/jdbc/derbyclient.jar")
>>> sys.path
['', '/opt/jython/Lib', '__classpath__', '__pyclasspath__/', '/opt/jython/Lib/site-packages', '/opt/jython/jdbc/derby.jar', '/opt/jython/jdbc/derbyclient.jar']
>>> from com.ziclix.python.sql import zxJDBC
>>> d, u, p, v = "jdbc:derby://localhost:1527//opt/apache-derby/derbydata/derbytutor/mundialito", "APP", "APP", "org.apache.derby.jdbc.ClientDriver"
>>> db = zxJDBC.connect(d, u, p, v)
>>> c = db.cursor()
>>> c.execute("SELECT * FROM COUNTRY_FIFA_RANK")
>>> for a in c.fetchall():
... print a
...
(1, u'Germany', u'GER', datetime.date(2017, 6, 12), 1, 1, None, None, None)
(2, u'Brazil', u'BRA', datetime.date(2017, 6, 12), 2, 2, None, None, None)
(3, u'Portugal', u'POR', datetime.date(2017, 6, 12), 3, 3, None, None, None)
>>> c.close()
>>> db.close()
AFAIK는, 드라이버는 자바 클래스 경로에 있어야합니다. Jython의'python.path'에 추가하는 것만으로는 충분하지 않습니다. https://stackoverflow.com/questions/3015059/jython-classpath-sys-path-and-jdbc-drivers를 참조하십시오. – mzjn