如何在JAVA中以表格形式显示SQL查询结果?
scanx.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){t...
scanx.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:DBtest","DBUser","DBUser");
Statement stmt=conn.createStatement(/*ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY*/);
ResultSet rs=stmt.executeQuery("select * from Reader where BName='%"+Tbname+"%'");//Type='%"+Ttype+"%'and
ResultSetMetaData rsmd=rs.getMetaData();
int columns=rsmd.getColumnCount();
rs.last();
int rows=rs.getRow();
String[] colNames = {""};
colNames=new String[columns];
Object[][] cells={{""},{""}};
cells=new Object[rows+1][columns];
rs.first();
for(int i=0;i<columns;i++)
{
colNames[i]=rsmd.getColumnLabel(i+1);
cells[0][i]=rsmd.getColumnLabel(i+1);
}
rs.beforeFirst();
for(int i=1;i<=rows;i++){
if(rs.next()){
for(int j=0;j<columns;j++){
cells[i][j]=rs.getString(j+1);
}
}
}
JTable Table = new JTable(cells,colNames);
JFrame R = new JFrame();
R.add(Table);
R.setVisible(true);
R.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
catch(Exception d){};
}
});
做在检索键上的动作监视器 想把从SQL里面搜索出的结果在JTable中显示出来
我写的代码是这样的 编译没有错 可能貌似哪的算法不对 死活不显示新窗口R
猜测是某个算法进入死循环了...可是自己又查不出来 只好麻烦大家了....
小弟先谢过了 问题解决追加100分再
大问题解决了 是我查询条件打错了...=.=
现在有个新问题...
ResultSet rs=stmt.executeQuery("select * from Reader where BName='%"+Tbname+"%'");
这句话最后那里有什么错吗 BName='字符串'就可以检索出结果 但是这样写变量名就不行...
Tbname时 final TextFaild Tbname这样定义的.... 展开
new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:DBtest","DBUser","DBUser");
Statement stmt=conn.createStatement(/*ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY*/);
ResultSet rs=stmt.executeQuery("select * from Reader where BName='%"+Tbname+"%'");//Type='%"+Ttype+"%'and
ResultSetMetaData rsmd=rs.getMetaData();
int columns=rsmd.getColumnCount();
rs.last();
int rows=rs.getRow();
String[] colNames = {""};
colNames=new String[columns];
Object[][] cells={{""},{""}};
cells=new Object[rows+1][columns];
rs.first();
for(int i=0;i<columns;i++)
{
colNames[i]=rsmd.getColumnLabel(i+1);
cells[0][i]=rsmd.getColumnLabel(i+1);
}
rs.beforeFirst();
for(int i=1;i<=rows;i++){
if(rs.next()){
for(int j=0;j<columns;j++){
cells[i][j]=rs.getString(j+1);
}
}
}
JTable Table = new JTable(cells,colNames);
JFrame R = new JFrame();
R.add(Table);
R.setVisible(true);
R.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
catch(Exception d){};
}
});
做在检索键上的动作监视器 想把从SQL里面搜索出的结果在JTable中显示出来
我写的代码是这样的 编译没有错 可能貌似哪的算法不对 死活不显示新窗口R
猜测是某个算法进入死循环了...可是自己又查不出来 只好麻烦大家了....
小弟先谢过了 问题解决追加100分再
大问题解决了 是我查询条件打错了...=.=
现在有个新问题...
ResultSet rs=stmt.executeQuery("select * from Reader where BName='%"+Tbname+"%'");
这句话最后那里有什么错吗 BName='字符串'就可以检索出结果 但是这样写变量名就不行...
Tbname时 final TextFaild Tbname这样定义的.... 展开
3个回答
展开全部
使用javax.swing.table.DefaultTableModel。
DefaultTableModel model = new DefaultTableModel(...);
Table.setModel(model);
model.addRow(...);
DefaultTableModel model = new DefaultTableModel(...);
Table.setModel(model);
model.addRow(...);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-06-23
展开全部
SQL 语法错了,那两个%号是通配符,去掉它。或者将=号改成 like
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询