连接Netbeans中azure数据库的Java程序出现错误
我得到以下错误: 我尝试了各种方法,但我遇到了一个错误,请查看以下错误 运行:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver位于 java.net.URLClassLoader.findClassURLClassLoader.java:381 at java.lang.ClassLoader.LoadClassLoader.java:424 at sun.misc.Launcher$AppClassLoader.loadClassLauncher.java:338 at java.lang.ClassLoader.LoadClassLoader.java:357 at 位于的java.lang.Class.ForName0本机方法 java.lang.Class.forNameClass.java:264 at com.sqldbsamples.App.mainApp.java:23 生成成功的总时间:0秒 这是我的代码:请帮助我如何使用java程序将我的数据库连接到azure连接Netbeans中azure数据库的Java程序出现错误,java,mysql,netbeans,azure-database-mysql,Java,Mysql,Netbeans,Azure Database Mysql,我得到以下错误: 我尝试了各种方法,但我遇到了一个错误,请查看以下错误 运行:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver位于 java.net.URLClassLoader.findClassURLClassLoader.java:381 at java.lang.ClassLoader.LoadClassLoader.java:424 at sun.misc.Launcher$Ap
public class App {
public static void main(String[] args) {
// Connect to database
String hostName = "testchinnaa.database.windows.net:1433"; // update me
String dbName = "Test_Gopi"; // update me
String user = "chinna"; // update me
String password = "******"; // update me
String url = String.format("jdbc:sqlserver://testchinnaa.database.windows.net:1433;database=Test_Gopi;user=chinna@testchinna;password=*****;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
+ "hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostName, dbName, user, password);
Connection connection = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(url);
String schema = connection.getSchema();
System.out.println("Successful connection - Schema: " + schema);
System.out.println("Query data example:");
System.out.println("=========================================");
// Create and execute a SELECT SQL statement.
String selectSql = "SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName "
+ "FROM [SalesLT].[ProductCategory] pc "
+ "JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid";
try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectSql)) {
// Print results from select statement
System.out.println("Top 20 categories:");
while (resultSet.next())
{
System.out.println(resultSet.getString(1) + " "
+ resultSet.getString(2));
}
connection.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
抱歉,您必须确定您使用的是MySql还是MSSql。你说你用了mysql。但是,在连接字符串中,它是sqlserver,这意味着它是MSSql 以下是使用java访问数据库的教程: 您需要下载数据库的连接器: 对于MySql: 对于MSSql: 手动将连接器jar文件添加到类路径。或者,您可以使用Maven dependencies manager在项目中安装和配置Connector/J库
<!-- Example for mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
对于MySql:
Connection conn = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String connectionUrl = "jdbc:mysql://{server_name}.mysql.database.azure.com:3306?useSSL=true&requireSSL=false&serverTimezone=UTC";;
conn = DriverManager.getConnection(connectionUrl, "username_from_portal, like: jack@mysqldemo258", "password");
rs = conn.prepareStatement("show databases").executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try{
if(rs != null) rs.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
它是mysql还是mssql?它是使用Java的mysql我收到以下错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层SSL加密建立到SQL Server的安全连接。错误:java.security.cert.CertificateException:在安全套接字层SSL初始化期间验证证书中的服务器名称失败。服务器名称为*.database.windows.net,证书中的名称为cr2.eastus1-a.control.database.windows.net。。 at@chinna98您使用哪个jdbc驱动程序版本?旧版本的驱动程序似乎有问题。所以,请检查您的jdk版本并选择正确的最新驱动程序版本。@chinna98您还有其他问题吗?没有。不过我没有检查那个驱动程序,我会尽快检查
Connection conn = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String connectionUrl = "jdbc:mysql://{server_name}.mysql.database.azure.com:3306?useSSL=true&requireSSL=false&serverTimezone=UTC";;
conn = DriverManager.getConnection(connectionUrl, "username_from_portal, like: jack@mysqldemo258", "password");
rs = conn.prepareStatement("show databases").executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try{
if(rs != null) rs.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}