您的位置:首页 > 数据库

如何把ResultSet的结果集,一表格的形式显示,或以表格的形式输出到控制台!

2017-01-03 14:18 441 查看
今天在编写一个小程序的时候,发现测试sql语句后,resultset结果集输出格式总是有些问题,在代码改进过程中,突然想到可以把结果集封装到JTable中,作为表格显示,从网上百度了不少,发现总是有些问题,然后结合网上的案例,自己编写了个测试文档,让大家参考一下:package code;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import
java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ScrollPaneConstants;import javax.swing.table.DefaultTableCellRenderer;import
javax.swing.table.DefaultTableModel;/** * * @author ZhangLiang */public class BookModel { public static void main(String[] args) { getTestJTable("select * from UserDoc"); } public static void getTestJTable(String strSql){ JFrame f = new JFrame("Sql结果放入JTable");
try{ Connection conn = getConn(); PreparedStatement ps = conn.prepareStatement(strSql); ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int rsmdCount = rsmd.getColumnCount(); JTable table = new JTable(0, rsmdCount); //这里应该是根据那个列数定义,或者是,普及后,然后宽度定义。
table.getTableHeader().setResizingAllowed(true); DefaultTableModel dataModel = (DefaultTableModel) table.getModel(); DefaultTableCellRenderer r = new DefaultTableCellRenderer(); r.setHorizontalAlignment(JLabel.CENTER); table.setDefaultRenderer(Object.class,
r); int count = dataModel.getRowCount(); //这里的count是个0 while (count > 0) { dataModel.removeRow(0); } while (rs.next()) { Vector v = new Vector(); for(int i=1;i<=rsmdCount;i++){ v.add(rs.getString(i)); } dataModel.addRow(v); } table.setModel(dataModel); //就差那个设置滚动条了。
//开始吧jtable放到那个jscroll中。 table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //自动设置宽度 table.setEnabled(false); JScrollPane scrollPane2 = new JScrollPane(table,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED ,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); f.add(scrollPane2); f.setSize(1024, 500); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }catch(SQLException e){ } } public static Connection getConn() {
String url = "jdbc:sqlserver://192.168.1.237:1433;DatabaseName=kh"; String username = "sa"; String password = "zl1110"; Connection conn = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection(url, username,
password); } catch (ClassNotFoundException | SQLException ex) { System.out.println("ERROR:"+ex.getMessage()); } return (conn != null) ? conn : null; }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jtable 测试 控制台 sql