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

ブログ    
ブログ    

推薦する

国産大型モデルの推論能力がGPT-3.5を超えた! OpenAI評価リストの第1層に入る

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

トップ 10 のディープラーニング フレームワークの比較分析

2016 年が過ぎ、BEEVA Labs のデータ アナリスト Ricardo Guerrero G...

マイクロソフトは、AIチップが十分に入手できない場合、データセンターのサービスが中断される可能性があると警告している

CNBCによると、7月29日、マイクロソフトは最近発表した財務報告書の中で、データセンターのサービス...

エッジ AI はどのようにして将来の AI および IoT トレンドのロードマップとなるのでしょうか?

エッジデバイスとコンピューティングにおける AI アプリケーションが未来である理由は何でしょうか?変...

障害検出におけるデータ機械学習の応用

はじめに: 従来の産業では、故障診断が機械メンテナンスで最も困難な段階であるため、メンテナンスに費や...

女神があなたを好きかどうか知りたいなら、AI マシンであなたの顔をスキャンするだけです。

[[281019]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

...

...

AIが科学研究を「行う」ことを学習し、ネイチャー誌に発表。知湖ネットユーザー:水を見るのは耐えられない

人工知能は複雑な囲碁のゲームでは簡単に人間に勝つことができますが、科学的な発見に役立つのでしょうか?...

宝くじに当たるのは雷に打たれるより難しいですか?確率を向上させるためにアルゴリズムを使ってみる

宝くじで生計を立てる可能性はどれくらいありますか? 2005年、MITの学生グループが集まり、ギャン...

自動化された機械学習は AI 研究の次の主流となるでしょうか?データサイエンティストの意見

自動化された機械学習は、過去 1 年間で大きな関心を集めるトピックになりました。 KDnuggets...

Mathematica が Big Language Model を導入しました。ネットユーザー:買う、買う、買う

Mathematica Wolfram の最新バージョンでは、大規模言語モデル (LLM) が正式に...

IBMの調査によると、AIのフィッシング能力は人間と同等であることが判明

この研究は、フィッシングメールの作成において AI と熟練した人間のエンジニアを対決させるという中核...

AI実践者の意見:ディープラーニングは強力だが、過大評価してはいけない

AlphaGOとイ・セドルの人間対機械の戦いにより、ディープラーニングという言葉が再び人気を集めてい...