2017-12-29 4 views
1

netbeans IDE에서 jython 용 zxJDBC 패키지를 통해 DB에 연결하려고합니다.netbeans가 jython 프로젝트 용 zxJDBC 드라이버를 찾지 못했습니다.

see the snapshot here

및 오류 메시지 수신 유지 : 이것은 내가 타이핑 코드가

zxJDBC.DatabaseError: driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] not found

:

난 이미 zxJDBC.jar 및 드라이버의 경로를 지정
from com.ziclix.python.sql import zxJDBC  
conn = zxJDBC.connect("jdbc:sqlserver://SERVERNAME;DatabaseName=DBNAME;","USER","PASSWORD","com.microsoft.sqlserver.jdbc.SQLServerDriver") 
cursor = conn.cursor() 
cursor.execute("select * from TABLE1") 

for row in cursor: 
    print('row = %r' % (row,)) 

제가 사용하는 파이썬 플랫폼은 자이 썬 2.5.1입니다.

+0

AFAIK는, 드라이버는 자바 클래스 경로에 있어야합니다. Jython의'python.path'에 추가하는 것만으로는 충분하지 않습니다. https://stackoverflow.com/questions/3015059/jython-classpath-sys-path-and-jdbc-drivers를 참조하십시오. – mzjn

답변

1

아마도 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() 
관련 문제