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声優が偽の声を本物らしくする方法

AI音声スタートアップ企業のソナンティックは、オーディオディープフェイクで小さな進歩を遂げ、からかっ...

AI が Sogou 入力方式の新バージョンを強化: 音声認識は 9 つの言語をサポート

最近、Sogou 入力方式がバージョン 10.8 に更新されました。新バージョンでは、主に音声入力と...

Nvidia の新しいブラック テクノロジーが「Minecraft」のモザイクをリアルな大ヒット作に変える

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

...

...

新型コロナウイルス感染症の流行中に音声テクノロジーが再び注目を集めているのはなぜでしょうか?

新型コロナウイルスの世界的大流行により、各国で厳しいロックダウン措置が取られ、多くの人が外出を控えざ...

時間変換に基づく初のビデオ移行攻撃アルゴリズム、復旦大学の研究がAAAI 2022に選出

[[441526]]近年、ディープラーニングは一連のタスク(画像認識、物体認識、セマンティックセグメ...

FacebookはAI音声アシスタントを開発しているが、財務上の将来は不透明

Facebook は近年、世論の嵐に何度も巻き込まれてきたが、技術革新に関しては決して無縁ではなかっ...

...

信頼できる機械学習モデルを作成するにはどうすればよいでしょうか?まず不確実性を理解する

「不確実性」の概念は、人工知能の安全性、リスク管理、ポートフォリオの最適化、科学的測定、保険などにつ...

ChatGPT と Stack Overflow: どちらの回答がより良いでしょうか?

米国のパデュー大学が最近発表した「誰の回答が優れているか? ChatGPT と Stack Over...

マイクロソフト、生成AIシステムのリスクを特定するためのPyRITをリリース

海外メディアの報道によると、マイクロソフトは2月26日、生成AIシステムのリスクを積極的に特定するた...

...