Как проверить, существует ли запись с определенным первичным ключом в таблице MySql из JDBC - PullRequest
0 голосов
/ 11 января 2012

Как я могу узнать из Java-программы, использующей JDBC, есть ли в моей таблице запись с определенным значением первичного ключа? Могу ли я каким-то образом использовать ResultSet после того, как я выполню оператор SELECT?

Ответы [ 5 ]

5 голосов
/ 11 января 2012

Count может быть лучшей идеей для этого случая.Вы можете использовать его следующим образом:

public static int countRows(Connection conn, String tableName) throws SQLException {
    // select the number of rows in the table
    Statement stmt = null;
    ResultSet rs = null;
    int rowCount = -1;
    try {
      stmt = conn.createStatement();
      rs = stmt.executeQuery("SELECT COUNT(*) FROM " + tableName + " WHERE.... ");
      // get the number of rows from the result set
      rs.next();
      rowCount = rs.getInt(1);
    } finally {
      rs.close();
      stmt.close();
    }
    return rowCount;
  }

Взято из здесь .

3 голосов
/ 06 сентября 2014

Вы можете сделать что-то вроде

private boolean hasRecord(String id) throws SQLException {
    String sql = "Select 1 from MyTable where id = ?";  

    PreparedStatement ps = dbConn.prepareStatement(sql);
    ps.setString(1,id);
    ResultSet rs = ps.executeQuery();

    return rs.next();
}
1 голос
/ 11 января 2012
select case 
            when exists (select 1 
                         from table 
                         where column_ = '<value>' and rownum=1) 
            then 'Y' 
            else 'N' 
        end as rec_exists
from dual;
1 голос
/ 11 января 2012

Вы можете сделать это в четыре шага.

  1. Написать SQL. Что-то вроде select count(1) from table where column = 34343 подойдет.
  2. Узнайте, как установить соединение с помощью JDBC.
  3. Узнайте о PreparedStatement s в Java.
  4. Узнайте, как читать значения из ResultSet.
0 голосов
/ 11 января 2012

Эта ссылка должна иметь что-то похожее на то, что вы хотите: Проверить, существует ли запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...