我想把查询出来的数据(大约5个字段)用类似于excel的形式显示出来,
怎么做呀,谁有没有可参考的代码???
(只需要把sqlserver 2000查询出来的数据怎样显示到jtable即可)
我有好多种查询,是不是要对每一种查询建立对应的查询结果界面呀???还是把jtable做成动态的???
怎么样做最简便亚呀?
怎么做呀,谁有没有可参考的代码???
(只需要把sqlserver 2000查询出来的数据怎样显示到jtable即可)
我有好多种查询,是不是要对每一种查询建立对应的查询结果界面呀???还是把jtable做成动态的???
怎么样做最简便亚呀?
然后用model的.addRow(vector)方法把数据添加到每一行~
ResultSet rs = MyConnection.exeQuery(sql);
Vector vector = null;
try {
while (rs.next()) {
vector = new Vector();
vector.add(rs.getInt("activId"));
vector.add(rs.getString("activName"));
vector.add(rs.getString("type"));
vector.add(rs.getInt("typeCount"));
vector.add(rs.getString("userName"));
vector.add(rs.getString("memo"));
dtm.addRow(vector);//这里的dtm是实现定义好的DefaultTableModel
}
} catch (Exception ex) {
ex.printStackTrace();
}
Connection con=DriveManager.getConnection();
Statement smt=con.createStatement(sqlQuery);
ResultSet rs = MyConnection.exeQuery(sql);
Vector vector = null;
try {
while (rs.next()) {
vector = new Vector();
vector.add(rs.getInt("activId"));
vector.add(rs.getString("activName"));
vector.add(rs.getString("type"));
vector.add(rs.getInt("typeCount"));
vector.add(rs.getString("userName"));
vector.add(rs.getString("memo"));
dtm.addRow(vector);//这里的dtm是实现定义好的DefaultTableModel
}
} catch (Exception ex) {
ex.printStackTrace();
}
请问一下,dtm是实现定义好的DefaultTableModel ,DefaultTableModel是怎么设计呀???
DefaultTableModel dtm=new DefaultTableModel();
然后 JTable.setMolel(dtm);即可!
import java.awt.datatransfer.*;
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import java.util.Vector; /**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class testFrame
extends JFrame {
JPanel contentPane;
XYLayout xYLayout1 = new XYLayout();
JTable jTable3 = new JTable();
public testFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(xYLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
contentPane.setBackground(SystemColor.controlLtHighlight);
contentPane.add(jTable3, new XYConstraints(91, 93, 238, 129));
// DefaultTableModel dtm=new DefaultTableModel();
// jTable3.setModel(dtm);
get_actionID();
}
//获得当前股票交易表中的序号:
public int get_actionID() {
int a=0;
Connection con = null;
Statement sta = null;
ResultSet rs = null;
DefaultTableModel dtm=new DefaultTableModel();
jTable3.setModel(dtm);
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动
con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://LENOVO-320EB584:1433;DatabaseName=stock",
"sa", "123");
sta = con.createStatement();
rs = sta.executeQuery("select *from stock"); //executeQuery
Vector vector=new Vector();
// Vector vector = null;
while (rs.next()) {
//a=rs.getInt("seq_num");
vector = new Vector();
vector.add(rs.getInt("seq_num"));
vector.add(rs.getInt("amount"));
vector.add(rs.getInt("utilize_amount"));
vector.add(rs.getString("date"));
dtm.addRow(vector);//这里的dtm是实现定义好的DefaultTableModel
}
}catch (Exception e) { try {
rs.close();
sta.close();
con.close();
}
catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
finally {
try {
rs.close();
sta.close();
con.close();
}
catch (SQLException e1) {
e1.printStackTrace();
}
}
// System.out.println(a);
return a;}
}
代码如下:
package storemanager_inquire;
import java.awt.datatransfer.*;
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import java.util.Vector; /**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class testFrame
extends JFrame {
JPanel contentPane;
XYLayout xYLayout1 = new XYLayout();
JTable jTable3 = new JTable();
JScrollPane jScrollPane1 = new JScrollPane();
// JScrollPane jscrollpane1 = new JScrollPane(jTable3);//将表格加个滚动条
public testFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane(); contentPane.setLayout(xYLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
contentPane.setBackground(SystemColor.controlLtHighlight);
jTable3.setBackground(Color.red);
contentPane.add(jTable3, new XYConstraints(91, 93, 238, 129));
contentPane.add(jScrollPane1, new XYConstraints(88, 49, 248, 201));
get_actionID();
}
//获得当前股票交易表中的序号:
public int get_actionID() {
// JFrame f=new JFrame();
int a=0;
Connection con = null;
Statement sta = null;
ResultSet rs = null;
String[] col = { "顺序", "总量", "可用","日期" };
DefaultTableModel dtm= new DefaultTableModel(col,0); //定义一个表的模板
//DefaultTableModel dtm=new DefaultTableModel();
jTable3.setModel(dtm);
//this.add(jscrollpane1); //将加载了表的滚动条在JFrame中显示
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动
con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://LENOVO-320EB584:1433;DatabaseName=stock",
"sa", "123");
sta = con.createStatement();
rs = sta.executeQuery("select *from stock"); //executeQuery
//Vector vector=new Vector();
// Vector vector = null;
while (rs.next()) {
Vector vector=new Vector();
//a=rs.getInt("seq_num");
vector = new Vector();
vector.add(rs.getInt("seq_num"));
vector.add(rs.getInt("amount"));
vector.add(rs.getInt("utilize_amount"));
vector.add(rs.getString("date"));
dtm.addRow(vector); //这里的dtm是实现定义好的DefaultTableModel
}
}catch (Exception e) { try {
rs.close();
sta.close();
con.close();
}
catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
finally {
try {
rs.close();
sta.close();
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println();
}
// f.setVisible(true);
//System.out.println(e);
return a;
}
}
想问一下,我可能要有很多种查询。 是不是每一种查询都要建一个查询窗口页面(即建一个application)
有没有更好的解决办法呀?