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アルゴリズムの筆記試験問題を分析する

ブログ    
ブログ    
ブログ    

推薦する

1時間から3.5分まで、Metaの新しいアルゴリズムは携帯電話で3D顔データを収集できる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能は多くの仕事を置き換えるでしょう。将来の子供たちの競争力は成績とは全く関係ないかもしれません。

[[379145]]昨日、家で強宝と一緒に『様々な職業』という本を読んでいました。突然思いついて、...

AIデータストレージデバイスを選択するための6つの重要な要素

人工知能 (AI) と機械学習は、企業がコアデジタル資産を活用して競争上の優位性を生み出すために役立...

1日で6つの賞を獲得! PATEOの自動車インターネットが高工インテリジェント車両ゴールデングローブ賞を受賞

12月15日から17日まで、2020年(第4回)高工インテリジェント自動車年次大会および高工ゴールデ...

機械学習アルゴリズムのコレクション: ベイズ学習からディープラーニングまで、それぞれの長所と短所

私たちが日常生活で使用する推奨システム、インテリジェントな画像美化アプリケーション、チャットボットな...

説明可能な AI とは何ですか?

説明可能な人工知能 (XAI) とブロックチェーン技術の融合は、分散型エコシステムにおける取引の監査...

...

ゲームAIの課題が進み、リアルタイム戦略ゲームや不完全情報ゲームがホットスポットに

前回の 2 つの記事では、ゲーム AI の歴史におけるいくつかの古典的なアルゴリズムと画期的なイベン...

位相データ解析を使用して畳み込みニューラルネットワークモデルの動作プロセスを理解する

1. はじめにニューラル ネットワークは、画像、テキスト、時系列などのさまざまなデータの処理において...

...

ジェネレーティブ AI がサイバーセキュリティのスキルギャップに与える影響

サイバーセキュリティ分野の仕事は需要が高く、有能な従業員が求められています。アメリカ国立標準技術研究...

他人があなたのコンピュータに触れることをもう恐れる必要はありません! Pythonによるリアルタイム監視

序文最近、突然素晴らしいアイデアが浮かびました。コンピューターの画面に顔を向けると、コンピューターは...

生成AIはスマートホームの触媒となる

ラスベガスで開催される2024年コンシューマー・エレクトロニクス・ショーが終わりに近づく中、LGやサ...

最高裁判所は顔認識に関する新たな規制を発表:顔情報の収集には「個別の同意」が必要

[[414466]] 7月28日、最高人民法院は「顔認識技術を用いた個人情報処理に関する民事訴訟にお...

OpenAI が深夜に 5 つのモデル アップデートを割引価格でリリースします。

編集者 | ヤン・ジェン現地時間1月25日、OpenAIは新モデルをリリースし、GPT-3.5 Tu...