项目步骤:
1)将静态html文件转换为JSP文件(涉及到了编码的问题)
2)封装DB
1 package com.bjsxt.bbs; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 //封装DB,方便操作 10 public class DB { 11 public static Connection getConn() { 12 Connection conn = null; 13 try { 14 Class.forName("com.mysql.jdbc.Driver"); 15 conn = DriverManager.getConnection( 16 "jdbc:mysql://localhost:3306/bbs", "root", "123456"); 17 } catch (ClassNotFoundException e) { 18 e.printStackTrace(); 19 } catch (SQLException e) { 20 e.printStackTrace(); 21 } 22 return conn; 23 } 24 25 public static Statement createStmt(Connection conn) { 26 Statement stmt = null; 27 try { 28 stmt = conn.createStatement(); 29 } catch (SQLException e) { 30 e.printStackTrace(); 31 } 32 return stmt; 33 } 34 35 public static ResultSet executeQuery(Statement stmt, String sql) { 36 ResultSet rs = null; 37 try { 38 rs = stmt.executeQuery(sql); 39 } catch (SQLException e) { 40 e.printStackTrace(); 41 } 42 return rs; 43 } 44 45 public static void close(Connection conn) { 46 if (conn != null) { 47 try { 48 conn.close(); 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 } 52 conn = null; 53 } 54 } 55 56 public static void close(Statement stmt) { 57 if (stmt != null) { 58 try { 59 stmt.close(); 60 } catch (SQLException e) { 61 e.printStackTrace(); 62 } 63 stmt = null; 64 } 65 } 66 67 public static void close(ResultSet rs) { 68 if (rs != null) { 69 try { 70 rs.close(); 71 } catch (SQLException e) { 72 e.printStackTrace(); 73 } 74 rs = null; 75 } 76 } 77 }
3)树状结构展现(一)
主要代码:
Article.java
1 package com.bjsxt.bbs; 2 3 import java.util.Date; 4 5 public class Article { 6 private int id; 7 private int pid; 8 private int rootId; 9 private String title; 10 private String cont; 11 private Date pDate; 12 private boolean isLeaf; 13 private int grade; 14 15 public int getGrade() { 16 return grade; 17 } 18 19 public void setGrade(int grade) { 20 this.grade = grade; 21 } 22 23 public int getId() { 24 return id; 25 } 26 27 public void setId(int id) { 28 this.id = id; 29 } 30 31 public int getPid() { 32 return pid; 33 } 34 35 public void setPid(int pid) { 36 this.pid = pid; 37 } 38 39 public int getRootId() { 40 return rootId; 41 } 42 43 public void setRootId(int rootId) { 44 this.rootId = rootId; 45 } 46 47 public String getTitle() { 48 return title; 49 } 50 51 public void setTitle(String title) { 52 this.title = title; 53 } 54 55 public String getCont() { 56 return cont; 57 } 58 59 public void setCont(String cont) { 60 this.cont = cont; 61 } 62 63 public Date getpDate() { 64 return pDate; 65 } 66 67 public void setpDate(Date pDate) { 68 this.pDate = pDate; 69 } 70 71 public boolean isLeaf() { 72 return isLeaf; 73 } 74 75 public void setLeaf(boolean isLeaf) { 76 this.isLeaf = isLeaf; 77 } 78 }
article.jsp文件
<%! private void tree(Set<Article> articles,Connection conn,int id,int grade){ String sql="select * from article where pid="+id; Statement stmt=DB.createStmt(conn); ResultSet rs=DB.executeQuery(stmt, sql); try{ while(rs.next()){ Article a=new Article(); a.setId(rs.getInt("id")); a.setPid(rs.getInt("pid")); a.setRootId(rs.getInt("rootid")); a.setTitle(rs.getString("titel")); a.setLeaf(rs.getInt("isleaf")==0?true:false); a.setpDate(rs.getTimestamp("pdate")); a.setGrade(grade+1); articles.add(a); if(!a.isLeaf()){ tree(articles, conn, id, grade+1); } }catch (SQLException e){ e.printStackTrace(); } } %> <% Set<Article> articles=new HashSet<Article>(); Connection conn=DB.getConn(); tree(articles,conn,0,0); DB.close(conn); %>
未完
时间: 2024-11-20 09:14:09