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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

...

...

...

BEV におけるデータセット間レーダーカメラ融合に関する実験的研究

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

人工知能時代の罠を回避し、実装を実現する方法

つい最近、カリフォルニア大学バークレー校で活躍している、インターネットで有名な無人食品配達車「Kiw...

従来のプログラマーはどのように AI を変革し、学習するのでしょうか?アリババは最前線のアルゴリズムチームが開発したコアAI技術をオープンソース化

次のような疑問を持ったことはありませんか?人工知能は非常に人気があります。従来のプログラマーとして、...

分析と AI で注意すべき 7 つの致命的な間違い

2017年、『エコノミスト』誌は、データが石油を上回り、世界で最も価値のある資源になったと宣言しまし...

シリコンチップ上に15万量子ビット:単一スピンの初の光学検出がNature誌に掲載

量子コンピュータは、従来のコンピュータでは解決に数十億年かかる問題を理論的に解決できますが、十分な量...

人工知能に関する12の有名な引用

[[321443]]アラン・チューリング(1912-1954)は、人工知能の概念を真剣に受け止めた最...

5分で様々な人工知能技術を紹介

人工知能は、コンピューターが人間と同様のレベルの知能を発揮できるようにするさまざまな技術を網羅する幅...

海外メディア:ウルトラマンのOpenAIへの復帰は主にチェスキー氏とナデラ氏の支援にかかっている

12月25日のニュース、シリコンバレーのテクノロジー企業の幹部たちは理解しにくい人々の集まりだ。彼ら...

中国のAI麻雀が新たな高みに到達!テンセントの「Jueyi」が本物のプロプレイヤーを破り新記録を樹立

中国のAIは予想通り、麻雀のプレイでは「楽々と」トップに立った。テンセントの最新ニュースによると、同...

Google DeepMindが復讐のために力を合わせる!ジェフ・ディーンとハサビスが1万語の記事で2023年のジェダイの反撃を要約

Google DeepMind、論文を提出してください!ちょうど今、ジェフ・ディーン氏とハサビス氏は...