Как я могу прочитать записи из базы данных SQL и затем отобразить их на JFrame?

0

Я пытался понять это на некоторое время, и я до сих пор не знаю, как я так надеялся, что некоторые из вас, ребята, могут мне помочь :)

Здесь мой код для подключения:

public class Conn {
private Connection conn = null;


public Connection getConn() throws ClassNotFoundException {
  try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/bloodbank","root","");
    } catch(SQLException e) {
      System.out.println(e);
    }
    return conn;
  }
}

И вот мой код для чтения и попытки его отображения:

public void read() throws ClassNotFoundException, SQLException {
  readForm r = new readForm();
  PreparedStatement st;
  Connection con = getConn();
  ResultSet rs;

  String query = "SELECT * FROM patients";
  try {
    st = con.prepareStatement(query);
    rs = st.executeQuery();
    DefaultTableModel tm = (DefaultTableModel)r.table.getModel();
    tm.setRowCount(0);
    Object row[] = new Object[5];
    for(Patients u : list){
      row[0] = u.getId();
      row[1] = u.getfName();
      row[2] = u.getlName();
      row[3] = u.getGender();
      row[4] = u.getAge();
      tm.addRow(row);
    }
    r.setVisible(true);
  } catch (SQLException e) {
     System.out.println(e);
  }            
}

В моем классе readForm нет кода, единственное, что есть в дизайне, и я пытаюсь вставить в эту таблицу из другого класса

Теги:

2 ответа

0

Для команды select вам нужно выражение и ResultSet, например:

try {
  st=conn.createStatement();
  String qry="select * from current_login";
  rst=st.executeQuery(qry);
  if(rst.next()) {
    u_name=rst.getString("username");
    password=rst.getString("password");
  }
  String qry1="select * from sign_up where username='"+u_name+"' and password= '"+password+"'";
  rst1=st.executeQuery(qry1);
  if(rst1.next()) {
    name=rst1.getString("name");
    cat=rst1.getString("game_category");
  }

остальная часть вашего кода верна.

0

Вам не нужен подготовленный оператор для выбора запроса, только для запросов вставки, но для оператора create. Также rs - это набор результатов, который не включен в цикл for, вместо этого вы используете экземпляр списка, который не инициализирован.

public void read() throws ClassNotFoundException, SQLException {
  Connection con = getConn();
  ResultSet rs;
  String query = "SELECT * FROM patients";
  try {
    stmt = con.createStatement();
    rs = stmt.executeQuery(query);
    DefaultTableModel tm = (DefaultTableModel)r.table.getModel();
    tm.setRowCount(0);
    String[] values = new String[5];
    //give data of the table line by line, replace tbl column with your column names
    while(rs.next()) {
      values[0] = rs.getString("tbl_column");
      values[1] = rs.getString("tbl_column");
      values[2] = rs.getString("tbl_column");
      values[3] = rs.getString("tbl_column");
      values[4] = rs.getString("tbl_column");
      tm.addRow(values);
    }
    r.setVisible(true);
  } catch (SQLException e) {
    System.out.println(e);
  }            
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню