我在Azure中有一个数据库,想使用我的Java连接到它。 我试过运行示例代码: 包com.function;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class Function {
public static void main(String[] args) {
// Connect to database - all strings were taken
String hostName = "HOSTNAME";
String dbName = "DBNAME";
String user = "MY_USER";
String password = "MY_PASSWORD";
String url = String.format("jdbc:sqlserver://%s:1433;database=%s;user=%s;password=%s;encrypt=true;"
+ "hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostName, dbName, user, password);
Connection connection = null;
try {
connection = DriverManager.getConnection(url);
String selectSql = "SELECT * FROM BUSINESSES FOR JSON PATH";
try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectSql)) {
while (resultSet.next())
{
System.out.println(resultSet.getString(1) + " "
+ resultSet.getString(2));
}
connection.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
我不确定如何解决它,如果有人知道问题出在哪里,那将有很大帮助。
注意-在pom.xml中有对此的引用:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
答案 0 :(得分:1)
您似乎是在控制台中启动应用程序(屏幕截图看起来像这样),所以我假设您执行类似的操作
java Function
从类文件所在的目录开始。
以这种方式启动时,必须提供jdbc驱动程序的jar作为类路径:
java -cp .;some/dir/where/the/jar/resides/mssql.jar Function
pom.xml中的引用仅在使用maven时导致jar的下载,但不会自动将其添加到JVM的“全局”类路径中。
如果100%确定JDBC驱动程序是类路径的一部分,则可以尝试自己将驱动程序注册到DriverManager
(驱动程序应该自己完成,但其中一些驱动程序可以这样做) t):
DriverManager.registerDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");