невозможно подключить Azure SQL в Java-функции - PullRequest
0 голосов
/ 02 октября 2019

Я хочу подключить базу данных Azure SQL в моей функции Java Azure. Но я всегда получаю сообщение об ошибке: не найден подходящий драйвер для «моей строки подключения». Мой код:

@FunctionName("HttpTrigger-Java")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context)  {
        context.getLogger().info("Java HTTP trigger processed a request.");

// something

        try {
             connection = DriverManager.getConnection(url);
            String schema = connection.getSchema();
            String sql = "select * from dbo.Colors where value = ?";
            st = connection.prepareStatement(sql);
            st.setString(1, "test");
            ResultSet resultSet = st.executeQuery();
            while (resultSet.next()) {

                result = "id:" + resultSet.getString(1) + "\tvalue: " + resultSet.getString(2) +"\n";


            }

            connection.close();
        }catch(Exception e){

            e.printStackTrace();

        }
       return result;
   }

1 Ответ

1 голос
/ 03 октября 2019

Согласно моему тесту, если мы хотим подключить SQL Azure в java-функции Azure, нам нужно добавить код Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); в наш проект. Например:

Код:

@FunctionName("HttpTrigger-Java")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context)  {
        context.getLogger().info("Java HTTP trigger processed a request.");

        // Parse query parameter
        String query = request.getQueryParameters().get("name");
        String name = request.getBody().orElse(query);




        return request.createResponseBuilder(HttpStatus.OK).body("Hello" + QuerySQl()).build();


    }

   public String QuerySQl(){



       String hostName = ".database.windows.net"; // update me
        String dbName = ""; // update me
        String user = ""; // update me
        String password = ""; // update me
        String url = String.format("jdbc:sqlserver://%s:1433;database=%s;user=%s;password=%s;"
                + "encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostName, dbName, user, password);
        //System.out.print(url);
        Connection connection;
        PreparedStatement st = null;
        String result="";

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            connection = DriverManager.getConnection(url);
            String schema = connection.getSchema();
            String sql = "select * from dbo.Colors where value = ?";
            st = connection.prepareStatement(sql);
            st.setString(1, "test");
            ResultSet resultSet = st.executeQuery();
            while (resultSet.next()) {

                result = "id:" + resultSet.getString(1) + "\tvalue: " + resultSet.getString(2) +"\n";


            }

            connection.close();
        }catch(Exception e){

            e.printStackTrace();

        }
       return result;
   }

добавить зависимость в pom.xml

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>7.4.1.jre8</version>
            <scope>test</scope>
        </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...