zoukankan      html  css  js  c++  java
  • [Java] bbs 中帖子的树状展现 JDBC (ArticleTree.java)

    import java.sql.*;
    
    public class ArticleTree {
        public static void main(String[] args) {
            new ArticleTree().show();
        }
    
        public void show() {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
    
                conn = DriverManager
                        .getConnection("jdbc:mysql://localhost/bbs?user=root&password=root");
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select * from article where pid = 0");
                while (rs.next()) {
                    System.out.println(rs.getString("cont"));
                    tree(conn, rs.getInt("id"), 1);
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                        rs = null;
                    }
                    if (stmt != null) {
                        stmt.close();
                        stmt = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        private void tree(Connection conn, int id, int level) {
            Statement stmt = null;
            ResultSet rs = null;
    
            StringBuffer strPre = new StringBuffer("");
            for (int i = 0; i < level; i++) {
                strPre.append("★★★★");
            }
    
            try {
                stmt = conn.createStatement();
                String sql = "select * from article where pid = " + id;
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    System.out.println(strPre + rs.getString("cont"));
                    if (rs.getInt("isleaf") != 0)
                        tree(conn, rs.getInt("id"), level + 1);
                }
    
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                        rs = null;
                    }
                    if (stmt != null) {
                        stmt.close();
                        stmt = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

  • 相关阅读:
    POJ 2486
    奇怪的电梯
    穿越泥地(mud)
    救援行动(save)
    As Fast As Possible
    Connecting Universities
    They Are Everywhere
    Cells Not Under Attack
    吃饭
    花店橱窗(flower)
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786880.html
Copyright © 2011-2022 走看看