JSPフォーラムツリー構造を実装するための特定のアルゴリズム

JSPフォーラムツリー構造を実装するための特定のアルゴリズム

1. JSP フォーラムのデモテーブルの構造:

  1. テーブル名: mybbslist
  2. フィールド データ型 説明
  3. BBSID自動番号付け
  4. RootID Int ルート投稿ID。ルート投稿の場合は、 RootID = ID
  5. FID Int 親投稿ID、前の投稿のID。ルート投稿の場合は、 FID = 0  
  6. DEPTH Int ルートレベル= 0 、その他は応答の深さに応じて増加します
  7. BBS件名 文字 トピック
  8.  

2. JSP フォーラムのテーブルを作成します。

  1. テーブル mybbslist を作成 (
  2. フォーラムID int(20) が null ではない、
  3. bbsID int auto_increment 主キー、
  4. rootid int(20) が null ではない、
  5. fid int(20) が null ではない、
  6. 深さ int(20) が null ではない、
  7. ユーザーID int(20) が null ではない、
  8. bbsUser varchar(24) が null ではない、
  9. bbsSubject varchar(100) が null ではありません。
  10. bbsコンテンツテキスト、
  11. bbsTime varchar(30)、
  12. bbsRead int(20)、
  13. bbs返信int(20),
  14. INDEX フォーラムID (フォーラムID))
  15.  

3. JSP フォーラム: MYSQL データベースに接続するための Bean

  1. パッケージ netzero;
  2. java.sql.* をインポートします。
  3. パブリッククラス mydb
  4. {
  5. 文字列driverName = "org.gjt.mm.mysql.Driver" ;
  6. 接続conn = null ;
  7. ステートメントstmt = null ;
  8. 結果セットrs = null ;
  9. 文字列connURL = "jdbc:mysql://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1" ;
  10. //文字列connURL = "jdbc:mysql://localhost/netzerobbs?user=root&password=how" ;
  11. パブリック mydb()
  12. {
  13. 試す
  14. {
  15. クラス.forName(ドライバー名);
  16. }
  17. キャッチ (java.lang.ClassNotFoundException e)
  18. {
  19. System.err.println("netzero(文字列): " + e.getMessage());
  20. }
  21. }
  22.  
  23. パブリックResultSet executeQuery(String sql)はSQLExceptionをスローします
  24. {
  25. conn = DriverManager.getConnection (connURL);
  26. stmt = conn.createStatement ();
  27. rs = stmt.executeQuery (sql);
  28. rs を返します。
  29. }
  30.  
  31. パブリックブール値 closeConn()
  32. {
  33. 試す
  34. {
  35. rs!=nullの場合、rs.close();
  36. stmt!=null の場合、 stmt.close();
  37. conn!=null の場合、conn.close();
  38. true を返します。
  39. }
  40. キャッチ ( SQLException ex )
  41. {
  42. System.err.println("closeConn: " + ex.getMessage());
  43. false を返します。
  44. }
  45. }
  46.  
  47. }
  48.  

4. JSP フォーラム JavaScript/" target="_blank">フォーラムを表示する JSP プログラム

  1. ﹤jsp:useBean id = "mybbs"  スコープ= "セッション"  クラス= "netzero.mydb" /﹥
  2. ﹤%@ ページのコンテンツタイプ= "text/html; charset=gb2312" %﹥
  3. ﹤%@ ページのインポート= "java.io.*" %﹥
  4. ﹤%@ ページのインポート= "java.sql.*" %﹥
  5. ﹤%
  6. int 行数;
  7. out.print("フォーラムのツリー構造を表示");
  8. out.print("﹤br﹥﹤br﹥");
  9. 試す {
  10. 文字列sql = "select * from mybbslist order by rootid desc,depth,fid,bbsid" ;
  11. 結果セットrs = mybbs.executeQuery (sql);
  12. rs.next() の場合
  13. {
  14. rs.last();
  15. rs.getRow ()行数を返します
  16. out.print("フォーラムツリーにあります");
  17. out.print(intRowCount);
  18. out.print("リーフノード");
  19. rs.first();
  20. 整数j = 0 ;
  21. = 0 ;
  22. out.print("﹤ul﹥");
  23. while(j﹤intRowCount)
  24. {
  25. int rs rsDepth =rs.getInt("深さ");
  26. if (rsDepth﹤Depth)
  27. {
  28. for(int i = 1 ; i < 深さ + 1; i i = i + 1)
  29. {
  30. out.print("﹤/ul﹥");
  31. }
  32. }
  33. rs rsDepth =rs.getInt("深さ");
  34. if (rsDepth > 深さ)
  35. {
  36. out.print("﹤ul﹥");
  37. }
  38. out.print("﹤li﹥");
  39.  
  40. 文字列bbssubject = rs .getString("bbssubject");
  41. out.print(bbssubject);
  42. out.print("﹤/li﹥");
  43. 深さ= rs.getInt ("深さ");
  44. j j =j+1;
  45. rs.next();
  46. }
  47. out.print("﹤/ul﹥");
  48. }
  49. それ以外
  50. {
  51. out.print("データベースにレコードがありません");
  52. }
  53. }キャッチ(SQLException E){
  54. out.println("SQLException: " + E.getMessage());
  55. out.println("SQLState: " + E.getSQLState());
  56. out.println("ベンダーエラー: " + E.getErrorCode());
  57. }
  58. %﹥
  59. ﹤% //mysql接続を閉じる
  60. 試す {
  61. if(!mybbs.closeConn());
  62. } catch (例外例) {
  63. System.err.println("closeConn: " + ex.getMessage());
  64. }
  65. %﹥

上記は実装した JSP フォーラムの具体的なアルゴリズムとツリー構造です。参考になれば幸いです。

<<:  SQL Server 2008 のデータ マイニングのための 9 つのアルゴリズム

>>:  古典的なJavaアルゴリズムの筆記試験問題を分析する

ブログ    
ブログ    

推薦する

ドローンは倉庫・物流業界の発展をどのように加速させているのでしょうか?

屋内ドローンは、新しい未知の市場でどのようにその有用性を証明できるでしょうか?ドローンは無人自律航空...

二分木反復アルゴリズム

バイナリ ツリーの事前順序、イン順序、および事後順序のトラバーサルは、アルゴリズムとデータ構造におけ...

適切な AI データ ストレージを選択するための 6 つのガイドライン

間違った AI ストレージ プラットフォームを選択すると、ビジネスに深刻な結果をもたらす可能性があり...

...

...

2020 年に注目すべき 6 つの機械学習のユースケース

2020 年には人工知能 (AI) が飛躍的に進歩し、機械学習はこのテクノロジーの最も成功し、広く普...

魔法のレコメンデーションシステム:6億人のユーザーの音楽シーンを考えるAI

[51CTO.comより] NetEase Cloud Musicは音楽愛好家が集まる場所です。C...

Transformerのランクを下げ、LLMのパフォーマンスを低下させることなく、特定のレイヤーのコンポーネントの90%以上を削除する

大規模モデルの時代において、Transformer は科学研究分野全体を一手にサポートします。 Tr...

...

インテリジェントな世界は加速していますが、真の人工知能 (AI) から私たちはどれくらい離れているのでしょうか?

人工知能は新しい概念でもなければ、単なる仕掛けでもありません。何十年も前から提案されてきました。真の...

OpenAI、開発者向けGPTチャットボットAPIのメジャーアップデートを発表、価格を値下げ

OpenAI は本日、大規模言語モデル API (GPT-4 および gpt-3.5-turbo を...

...

AIと自動化によるセキュリティの向上

2020年に突如発生した新型コロナウイルス感染症のパンデミックにより多くの従業員が自宅待機を余儀なく...

ペイ・ジアンのチームの44ページの新作:ディープラーニングモデルの複雑さを理解するには、これを読んでください

最近、ディープラーニング モデルの複雑性に関する最初のレビュー「ディープラーニングのモデルの複雑性:...

...