Как написать SQL-запрос в метод executeQuery? - PullRequest
0 голосов
/ 20 октября 2019

У меня есть таблица account_holder с полем userId, и у меня есть набор данных в качестве данных. Я хочу выбрать только ту запись из account_holder, которая имеет userId как data[3], то есть (4 поля набора данных). Я пишу запрос как:

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("select * from account_holder where userID = 'data[3]' ");

Но мой rs - null, запись не попадает в объект ResultSet rs. Пожалуйста, скажите мне, как правильно написать SQL-запрос с предложением where внутри метода executeQuery ().

Ответы [ 2 ]

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

Как сказано в первом посте, это один из способов справиться с этим:

     try {
        Statement statement = connection.createStatement(); // Creating Statement

        // Executing Statement
        ResultSet resultSet = statement.executeQuery("SELECT * FROM account_holder WHERE userID = '" + data[3] + "'");

        // Check if result set has entries
        if (resultSet.first()) // If so the user already exists
            System.out.println("User already exists! " + resultSet.getString("userID"));
        else // If not the user does not exist
            System.out.println("User does not exist!");

        // Clean up
        resultSet.close();
        statement.close();
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

Но в вашем контексте я бы действительно рекомендовал использовать PreparedStatement:

    try {
        // Making statement
        PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM account_holder WHERE userID = ?");
        preparedStatement.setString(1, data[3]); // Set String for the first question mark in Query

        ResultSet resultSet = preparedStatement.executeQuery(); // Executing the Prepared Statement

        // Check if result set has entries
        if (resultSet.first()) // If so the user already exists
            System.out.println("User already exists! " + resultSet.getString("userID"));
        else // If not the user does not exist
            System.out.println("User does not exist!");

        // Clean up
        resultSet.close();
        preparedStatement.close();
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
0 голосов
/ 20 октября 2019

Необходимо изменить запрос только в методе executeQuery

, например:

Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery("select * from account_holder where userID = '"+data[3]+"' ");

, или вы также можете выполнить следующую команду:

ResultSet rs = st.executeQuery("select * from account_holder where userID = "+data[3]+"");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...