How to display data from MS Access database in JTable?

I am currently developing a program in NetBeans IDE. I created a good GUI and I created my MS Access database. I'm having problems displaying MS Access data JTable. I would like to avoid using vectors, as shown in most of the tutorials that I found on the Internet since I am still in high school, and this knowledge is beyond me.

Any pointers in the right direction would be greatly appreciated!

Here is my code:

 String[] columnNames = {"First Name",
                              "Last Name",
                               "Category",
                               "Amount"
                               };
  Object[] row =new Object[4];
  JLabel lbl=new JLabel("Add New Property");
  lbl.setBounds(100,200,200,100);
  lbl.setVisible(true);
  invntryfrm.add(lbl);
  //invntryfrm.setVisible(true);
  JPanel panel=new JPanel();
  panel.setBounds(20,200,680,100);
  panel.setBackground(Color.WHITE);
  invntrybck.add(panel);
  DefaultTableModel model=new DefaultTableModel();
  model.setColumnIdentifiers(columnNames);
  JTable tabel=new JTable();
  tabel.setBounds(100,20,700,400);
  tabel.setBackground(Color.DARK_GRAY);
  tabel.setForeground(Color.WHITE);
  tabel.setModel(model);
  tabel.setPreferredScrollableViewportSize(new Dimension(500,50));
  tabel.setFillsViewportHeight(true);
  JScrollPane pane=new JScrollPane(tabel);
  panel.add(pane);
  try{
  Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\MUHAMMAD SHAHAB\\real estate.accdb");
  String sql="select Username,Password,Country,City from simba";
  PreparedStatement pst=conn.prepareStatement(sql);
  ResultSet rs=pst.executeQuery();

   }
   catch(Exception ex)
   {
       JOptionPane.showMessageDialog(null, ex);
   }
+4
source share
2 answers

(1). rs2Xml.jar , :

 Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\MUHAMMAD SHAHAB\\real estate.accdb");
                               String sql="select Username,Password,Country,City from simba";
                               PreparedStatement pst=conn.prepareStatement(sql);
                               ResultSet rs=pst.executeQuery();
                               tabel.setModel(DbUtils.resultSetToTableModel(rs)); 

, .

+6
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;

import static java.lang.System.out;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.Statement;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

public class JavaApplication16 {



public static void main(String[] args) {


    String driver="org.apache.derby.jdbc.ClientDriver";
    String url="jdbc:derby://localhost:1527/simbadb";
    String username="simbadb", password="simbadb";

    Connection con=null;
    try
    {
        Class.forName(driver);
        con=DriverManager.getConnection(url, username, password);
        String query="select * from simba";
        Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);

        int rowcount=0;
        ResultSet rs=stmt.executeQuery(query);
        ResultSetMetaData rsmd=rs.getMetaData();
        int columncount=rsmd.getColumnCount();

        while(rs.next())
        {
            rowcount++;
        }
        out.println("number of records: "+rowcount);

        String[][] rowdata=new String[rowcount][columncount];
        rs.beforeFirst();
        int rowindex=0;
        while(rs.next())
        {
            int columnindex=0;
            for(int i=1;i<=columncount;i++)
            {
                rowdata[rowindex][columnindex]=rs.getString(i);
                columnindex++;
            }
            rowindex++;
        }

        String[] coldata=new String[columncount];
        int colindex=0;
        for(int i=1;i<=columncount;i++)
        {
            coldata[colindex]=rsmd.getColumnName(i);
            colindex++;
        }
        rs.close();

        DefaultTableModel dtm=new DefaultTableModel(rowdata, coldata);

        JFrame frame=new JFrame();

        JTable table=new JTable();
        table.setModel(dtm);

        Container c=frame.getContentPane();
       c.setLayout(new FlowLayout(FlowLayout.LEFT));
       c.add(new JScrollPane(table));

       frame.setSize(new Dimension(500, 500));
       frame.setVisible(true);
    }
    catch(Exception e)
    {
        out.println(e);
    }
    finally
    {
        try
        {
            if(con!=null)
            {
                con.close();
                out.println("closed");
            }
        }
        catch(Exception e)
        {
            out.println(e);
        }


    }

}

}

</" > jdk 8 JdbcOdbcDriver ! .
netbeans ide derby,
! , .
DefaultTableModel - , TableModel. swing MVC, .
DefaultTableModel - / TableModel , .
, ! , plz :


alkaramansari1@gmail.com
+2

Source: https://habr.com/ru/post/1656445/


All Articles