I'm trying to connect to my database via jaydebeapi and jdbc driver.
Here is my python code:
import jaydebeapi
import jpype
class MyClass:
# jdbc_driver_path = os.path.join('Library', 'Java', 'Extensions', 'sqlserverjdbc.jar')
jdbc_driver_path = os.path.join('Library', 'Java', 'Extensions', 'sqljdbc_9.4', 'enu', 'mssql-jdbc-9.4.0.jre16.jar')
jaydebeapi_args = [
'com.microsoft.sqlserver.jdbc.SQLServerDriver',
# 'com.microsoft.jdbc.sqlserver.SQLServerDriver',
# 'org.hsqldb.jdbcDriver',
# 'com.mssql.jdbc.Driver',
# 'com.datavirtuality.dv.jdbc.Driver',
# os.path.join('Library', 'Java', 'Extensions', 'sqlserverjdbc.jar'),
# os.path.join('Library', 'Java', 'Extensions', 'sqljdbc_9.4', 'enu', 'mssql-jdbc-9.4.0.jre16.jar'),
'<host>',
dict(user='<user>', password='<password>'),
jdbc_driver_path
]
def __init__(self):
# jpype.startJVM(classpath=self.jdbc_driver_path)
connection = jaydebeapi.connect(*self.jaydebeapi_args)
Commented out lines also didn't help. Every time there is this error:
Traceback (most recent call last): File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap self.run() File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/Users/sgalich/Desktop/projects/myproject/myapp/views.py", line 538, in my_function MyClass( File "/Users/sgalich/Desktop/projects/myproject/myapp/views.py", line 199, in init connection = jaydebeapi.connect(*self.jaydebeapi_args) File "/Users/sgalich/Desktop/projects/gdp/env/lib/python3.8/site-packages/jaydebeapi/init.py", line 412, in connect jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs) File "/Users/sgalich/Desktop/projects/myproject/env/lib/python3.8/site-packages/jaydebeapi/init.py", line 221, in _jdbc_connect_jpype jpype.JClass(jclassname) File "/Users/sgalich/Desktop/projects/myproject/env/lib/python3.8/site-packages/jpype/_jclass.py", line 99, in new return _jpype._getClass(jc) TypeError: Class com.microsoft.sqlserver.jdbc.SQLServerDriver is not found
Also I've tried to set a classpath, but no one of these commands didn't help:
java -cp /Library/Java/Extensions/hsqlserverjdbc.jar com.microsoft.sqlserver.jdbc.SQLServerDriver
java -cp /Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar com.microsoft.sqlserver.jdbc.SQLServerDriver
java -cp .:/Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar:com.microsoft.sqlserver.jdbc.SQLServerDriver
export CLASSPATH=.:/Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar:$CLASSPATH
export $CLASSPATH=.:/Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar
export $CLASSPATH=/Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar:$CLASSPATH
export $CLASSPATH=/Library/Java/Extensions/sqljdbc_9.4/enu/mssql-jdbc-9.4.0.jre16.jar
I've placed in the ~/.bash_profile
a variable with the path to the driver folder, but it didn't help. I reinstalled Java, which didn't help either.
How can I make it work?