我需要从Matlab内部连接到SQLServer数据库。
注意事项:
这是我到目前为止所做的......
我已经从here下载了SQL Server JDBC驱动程序。
我已经创建了一个沙箱目录,内容如下图所示......
这是我的Matlab代码。
% Connection params
server = 'myServerName';
port = 1433;
dbname = 'myDatabase';
user = 'user1';
pass = 'password';
url = sprintf('jdbc:sqlserver://%s:%d;DatabaseName=%s',server,port,dbname);
% Importing Java libraries
import java.sql.*;
import java.sql.DriverManager;
import java.sql.DriverManager.*;
% Add the Microsoft SQL Server JAR to Java path
javaaddpath('<path_to_this_folder>\sqljdbc41.jar'); %for JRE7
import com.microsoft.sqlserver.jdbc.*
% Try to instantiate the JDBC Driver
% This way DOES work
% (https://stackoverflow.com/questions/24438359/connecting-matlab-and-mysql-with-the-jdbc-driver)
if true
d = com.microsoft.sqlserver.jdbc.SQLServerDriver;
urlValid = d.acceptsURL(url);
props = java.util.Properties;
props.put('user',user);
props.put('password',pass);
con = d.connect(url, props);
% This way DOES NOT work.
%I referred to the sample code included with the JDBC to write this.
else
% Matlab Doc says this is similar to calling...
% Class.forName(...)
javaObjectEDT('com.microsoft.sqlserver.jdbc.SQLServerDriver');
driver = DriverManager.getDriver(url);
con = DriverManager.getConnection(url, user, pass);
end
看来无论出于何种原因,DeviceManager都没有正确加载驱动程序。方法DriverManager.getDriver(url)
抛出异常......
Java exception occurred:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
有没有办法解决这个问题,还是应该直接通过驱动程序本身进行连接?我无法想出它重要的原因。会有什么后果吗?我应该采用DataSource方法吗?
谢谢!
答案 0 :(得分:0)
您可能希望尝试将驱动程序添加到静态Java路径而不是动态Java路径。每当我使用数据库驱动程序时,如果它们处于动态路径上,它们似乎就会遇到麻烦;我不确定为什么,但是他们似乎需要以特定的方式加载,如果它们处于动态路径上则不能很好地工作。