Пытаетесь понять, как вы вставляете переменные в jdbc sql запросы? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь вставить переменную в оператор SQL в Java. Я прочитал еще один пост на Вставка переменной в запрос SQL из Java , но я не совсем понял, что они сделали.

   public static void searchordernumber(int inputnum) {
        try {
            Connection connection = DriverManager.getConnection(url);
            String sql = "SELECT * FROM orderTable WHERE ordernumber=?";
            Statement stmt = connection.createStatement();
            //ResultSet rs = stmt.executeQuery(sql);
            System.out.println("works");
            connection.close();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

Как мне поместить переменную inputnum, где? есть

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019

Чтобы связать параметр с заполнителем ? в инструкции SQL, используйте PreparedStatment. См. Использование подготовленных заявлений Документы, более или менее следующие:

String sql = "SELECT * FROM orderTable WHERE ordernumber = ?";
int orderNumber = 123;
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, orderNumber); 
ResultSet resultSet = preparedStatement.executeQuery();
1 голос
/ 01 ноября 2019

Вам необходимо использовать PreparedStatement, как в:

public static void searchordernumber(int inputnum) {
  try {
    Connection connection = DriverManager.getConnection(url);
    String sql = "SELECT * FROM orderTable WHERE ordernumber = ?";
    PreparedStatement ps = connection.prepareStatement(sql));
    ps.setInt(1, inputnum); // here's the magic
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
      int id = rs.getInt(1); // assuming there's a column "id" of type INT
      System.out.println("id=" + id);
    }
    connection.close();
  } catch (SQLException e) {
    System.out.println(e.getMessage());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...