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

今天在编写一个小程序的时候,发现测试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; }}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,您可以在 `try` 块中加入查询表格的代码,并在控制台输出查询结果。示例代码如下: ```java import java.sql.*; public class ConnectToDatabase { public static void main(String[] args) { Connection conn = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接数据库(这里假设数据库名为myDB,用户名为root,密码为123456) String url = "jdbc:mysql://localhost/myDB?useSSL=false"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); // 查询表格输出 Statement stmt = conn.createStatement(); String sql = "SELECT * FROM 表名"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { String name = rs.getString("name"); String gender = rs.getString("gender"); int age = rs.getInt("age"); System.out.println(name + " " + gender + " " + age); } // 输出连接成功信息 System.out.println("连接数据库成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); // 输出连接失败信息 System.out.println("连接数据库失败"); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 输出一行文字 System.out.println("查询结果已输出"); } } ``` 需要注意的是,上述代码中的 `表名` 需要替换为您自己的表格名。另外,如果您要查询的是SQL Server数据库中的表格,则需要修改SQL语句中的语法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值