从数据库表中添加JTable中的值

时间:2013-07-18 10:01:32

标签: java swing jdbc jtable odbc

这是我的第一个名字ConnectionDBClass.java 我想保存从数据库中检索数据,然后存储/显示到JTable中。

public class ConnectionDBClass implements Job {

public void execute(JobExecutionContext arg0) throws JobExecutionException {
String serverName = "192.168.0.1";
String portNumber = "1521";
String sid = "hifi";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
String username = "courser_hotline";
String password = "courser_hotline";
String[] columnNames = {"command_name", "omc_name", "to_module", "start_time", "end_time", "status", "priority", "cmd_id"};

try {  
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());  
//    System.out.println("Connecting to the database...");  
    Connection connection = DriverManager.getConnection(url, username, password);  
    Statement statement = connection.createStatement();  
    String query = "select command_name, omc_name, to_module, start_time, end_time, status, priority, cmd_id from sync_task_table";
//    String query = "select * from sync_task_table";
    ResultSet resultset = statement.executeQuery(query);


  // Create some data
    String dataValues[][] =
  {
    { resultset.getString("command_name"), resultset.getString( "omc_name"), resultset.getString( "to_module"), resultset.getString("start_time"),resultset.getString("end_time"),resultset.getString("status"),resultset.getString("priority"),resultset.getString("cmd_id") }

  };
  //
  //// Create a new table instance
 GUIClass.table = new JTable( dataValues, columnNames );
  }



catch (Exception e) {  
    System.out.println("The exception raised is:" + e);  
}


} 

}

这是我的第二个名字GUIClass.java在这个类中的GUI代码

public class GUIClass extends JFrame {
static JFrame frame;
static JLabel formlabel;
static JPanel panel1;
static JPanel panel2;
static JTextField t1;
static JComboBox selectOMC;
static JButton run;
static JPanel panel3;
static DefaultTableModel model;
public static JTable table;
static JScrollPane tableScroll;
static Dimension tablePreferred;


public static void createGUI()
{
    InilizationAndLabelGUIVariables.Initilization();
    InilizationAndLabelGUIVariables.LabelForm();



}

public static void main(String[] args)
{
    createGUI();


}

}

我的第三个类名是InilizationAndLabelGUIVariables.java在这个类中,初始化并标记在GUIClass.java类中声明的变量

 public class InilizationAndLabelGUIVariables {

public static void Initilization()
{
    GUIClass.frame = new JFrame("Syncronization Optimizer");
    GUIClass.panel1 = new JPanel(new BorderLayout(5,5));

    GUIClass.panel2 = new JPanel(new FlowLayout(FlowLayout.RIGHT, 3,3));
    GUIClass.formlabel = new JLabel("Syncronization Optimizer Tool");

    GUIClass.t1 = new JTextField(23);
    GUIClass.selectOMC = new JComboBox(ConnectionDB.OMCName);
    GUIClass.run = new JButton("  Run  ");
    GUIClass.panel2 = new JPanel();
    GUIClass.model = new DefaultTableModel(ConnectionDBClass.dataValues, ConnectionDBClass.columnNames);
    GUIClass.table = new JTable(GUIClass.model);
    try {
        // 1.6+
        GUIClass.table.setAutoCreateRowSorter(true);
    } catch(Exception continuewithNoSort) {
    }
    GUIClass.tableScroll = new JScrollPane(GUIClass.table);
    GUIClass.tablePreferred = GUIClass.tableScroll.getPreferredSize();
    GUIClass.tableScroll.setPreferredSize(
        new Dimension(GUIClass.tablePreferred.width, GUIClass.tablePreferred.height/3) );


    GUIClass.frame.setContentPane(GUIClass.panel1);

    GUIClass.frame.setBounds(150,100,570,491);
    GUIClass.frame.setResizable(false);
    GUIClass.frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    GUIClass.frame.setVisible(true);
}


public static void LabelForm()
{
     GUIClass.panel1.add(GUIClass.panel2, BorderLayout.NORTH);
     GUIClass.panel2.add(GUIClass.formlabel);
     GUIClass.panel2.add(GUIClass.selectOMC);
     GUIClass.panel1.add(GUIClass.tableScroll);
     GUIClass.panel2.add(GUIClass.table);
    // gui.add( splitPane, BorderLayout.CENTER );

}

}

请帮助我,我坚持这样做。

1 个答案:

答案 0 :(得分:4)

  • JTable (its model)Table from Database具有相同的结构,数据存储在columnsrows

  • ResultSet内循环以及Resultset中的每一行,以new Vector<Object>new Object[]添加到表格模型或JTable.addRow添加DefaultTableModel }}

  • ResultSetTableModel提供TableFromDatabase或更好的{{1}}只是为了避免重新发明轮子