Java программа для подключения azure базы данных в Netbeans Я получаю ошибку - PullRequest
0 голосов
/ 25 февраля 2020

Я получаю следующую ошибку:

Я пробовал разные способы, чтобы получить ошибку, см. Следующую ошибку.

run: java .lang. ClassNotFoundException: com.microsoft.sqlserver.jdb c .SQLServerDriver в java. net .URLClassLoader.findClass (URLClassLoader. java: 381) в java .lang.ClassLoader.loadClass (ClassLoader. * *: 424) at sun.mis c .Launcher $ AppClassLoader.loadClass (Launcher. java: 338) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) в java. lang.Class.forName0 (собственный метод) в java .lang.Class.forName (Class. java: 264) в com.sqldbsamples.App.main (приложение. java: 23)

BUILD SUCCESSFUL (общее время: 0 секунд)

Это мой код: пожалуйста, помогите мне, как подключить мою базу данных к azure с помощью программы java !!!

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();
        }
    }
}

1 Ответ

1 голос
/ 25 февраля 2020

Извините, вы должны выяснить, используете ли вы MySql или MS Sql. Вы сказали, что использовали mysql. Однако в строке подключения это sqlserver , что означает, что это MS Sql.

Вот учебник для доступа к базе данных с использованием java:

  1. Вам необходимо скачать соединитель для вашей базы данных:

  2. Вручную добавьте файл jar соединителя в ваш путь к классу. Или вы можете использовать диспетчер зависимостей Maven для установки и настройки библиотеки Connector / J в вашем проекте.

    <!-- Example for mysql -->
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.18</version>
    </dependency>
    
  3. Пример кода

    • Для MS Sql:

      try {
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
          connection = DriverManager.getConnection("conntection_string");
          String SQL = "SELECT name FROM sysdatabases;";
      
          try (Statement statement = connection.createStatement();
               ResultSet resultSet = statement.executeQuery(SQL)) {
      
              // Print results from select statement
              while (resultSet.next()) {
                  System.out.println(resultSet.getString(1));
              }
              connection.close();
          }
      } catch (Exception e) {
          e.printStackTrace();
      }
      
    • Для 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();
          }
      }
      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...