如何建立論壇相關(guān)數(shù)據(jù)庫(kù)并將數(shù)據(jù)以json格式傳回

1、建立數(shù)據(jù)庫(kù)名為bbs
1.1建立表名Model扑毡、article胃榕、reply分別為板塊名、文章列表和回復(fù)表
Model下字段為:mid瞄摊、mtitle勋又、muser,分別為板塊號(hào)、板塊標(biāo)題换帜、板塊管理員楔壤,將mid設(shè)置為自增主鍵,mtitle設(shè)置為varchar惯驼,mid和muser設(shè)置為int
Article下字段為:aid蹲嚣、atitle、acontent祟牲、mid隙畜、auserId、acreatetime,分別為文章號(hào)说贝,文章標(biāo)題禾蚕,文章內(nèi)容和板塊id,文章發(fā)布者id,創(chuàng)建的時(shí)間,aid和mid設(shè)置為int,atitle和acontent設(shè)置為varchar,acreatetime設(shè)置為DataTime
Reply字段下為:rid、rcontent狂丝、ruserId换淆、aid哗总、rcreatetime,分別為回復(fù)號(hào),回復(fù)的內(nèi)容,回復(fù)者id,文章id,回復(fù)時(shí)間倍试。其中讯屈,rid,ruserId、aid設(shè)置為int县习,rcontent設(shè)置為varchar,rcreatetime設(shè)置為TIMEStamp.
注:article靠mid來(lái)判斷板塊涮母,replay靠aid來(lái)判斷所屬文章

2、建立article.jsp文件來(lái)存放輸出內(nèi)容
2.1 在body中添加一個(gè)下拉菜單躁愿,將從數(shù)據(jù)庫(kù)返回的數(shù)據(jù)叛本,存入id為articlelist的div塊中

<select name="mid" id="mid">
    <option value="1">王者榮耀</option>
    <option value="2">dota</option>
    <option value="3">魔獸世界</option>
</select>
<div id="articList">

</div>

2.2 在article.jsp中導(dǎo)入需要的js文件:

<script src="js/jquery1.11.3.min.js"></script>
<script src="js/article.js"></script>

2.3下載并導(dǎo)入需要的一個(gè)將數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)轉(zhuǎn)換成json的一個(gè)包
包名為:fastjson-1.2.5.jar,將其放在WebContent 下的WEB-INF下的lib文件夾下,然后彤钟,右鍵選擇build path, 選擇add path来候。

此時(shí),還有一個(gè)與數(shù)據(jù)庫(kù)相連的包需要導(dǎo)入逸雹,名為:
mysql-connector-java-5.1.7-bin.jar,方法相同

3营搅、在article.js中寫入以下代碼,用來(lái)提取從服務(wù)器返回的數(shù)據(jù)

$(function(){
    $("#mid").change(function(){
        var mid=$(this).val();
        //傳到服務(wù)器查詢?cè)摪鍓K下的帖子
        $.getJSON("GetArticSevlet?mid="+mid,function(obj){
            //alert(obj);
            //清空div
            $("#articList").empty();
            //obj存放的是json數(shù)組
            $.each(obj,function(k,v){
                //追加當(dāng)前板塊下的帖子
                $("#articList").append(v.atitle+"<br/>");
            })
            
        })
    })
})

4梆砸、在GetArticSevlet.servlet下寫入以下代碼转质,用來(lái)建立與數(shù)據(jù)庫(kù)的連接并且將返回?cái)?shù)據(jù)轉(zhuǎn)換為 json數(shù)據(jù)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        
        
        //1.獲得mid
        String mid=request.getParameter("mid");
        
        //2.查詢?cè)摪鍓K下的帖子
        String sql="select * from article where mid=?";
        
        List<Object> paramList=new ArrayList<Object>();
        
        paramList.add(mid);
        
        DbHelper dbHelper=new DbHelper();
        
        List<Map<String, Object>> list=  dbHelper.executeQuery(sql, paramList);
        //3、自動(dòng)轉(zhuǎn)換成json
        
        String jsonstr=JSON.toJSONString(list);
        
        response.getWriter().println(jsonstr);

    }

注:如果不導(dǎo)fastjson包帖世,可以自己寫以下代碼休蟹,用來(lái)替換最后兩句,將數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)修改為json數(shù)據(jù)

//4日矫、轉(zhuǎn)換為json字符串,json格式:{"aid":1,"atitle":"hello"},{"aid":2,"atitle":"hello2"},
        StringBuilder jsonstr=new StringBuilder();
        
        jsonstr.append("[");
        
        for(Map<String, Object> map:list)
        {
            jsonstr.append("{");
            
            Set<String> keys= map.keySet();
            
            for(String key:keys)
            {
                 jsonstr.append(key);
                 jsonstr.append(":");
                 jsonstr.append("'"+map.get(key)+"',");
            }
            jsonstr.delete(jsonstr.length()-1, jsonstr.length());
            
            jsonstr.append("},");
        }
        
        jsonstr.delete(jsonstr.length()-1, jsonstr.length());
        
        jsonstr.append("]");

注:其中還用到了一個(gè)db.properties的數(shù)據(jù)庫(kù)相關(guān)配置文件赂弓,放在GetArticSevlet上級(jí)目錄的根目錄下,內(nèi)容為

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/數(shù)據(jù)表名?characterEncoding=utf-8
uname= 數(shù)據(jù)庫(kù)用戶名
pwd=數(shù)據(jù)庫(kù)密碼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搬男,一起剝皮案震驚了整個(gè)濱河市拣展,隨后出現(xiàn)的幾起案子彭沼,更是在濱河造成了極大的恐慌缔逛,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姓惑,死亡現(xiàn)場(chǎng)離奇詭異褐奴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)于毙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門敦冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人唯沮,你說我怎么就攤上這事脖旱】八欤” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵萌庆,是天一觀的道長(zhǎng)溶褪。 經(jīng)常有香客問我,道長(zhǎng)践险,這世上最難降的妖魔是什么猿妈? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮巍虫,結(jié)果婚禮上彭则,老公的妹妹穿的比我還像新娘。我一直安慰自己占遥,他們只是感情好俯抖,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筷频,像睡著了一般蚌成。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凛捏,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天担忧,我揣著相機(jī)與錄音,去河邊找鬼坯癣。 笑死瓶盛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的示罗。 我是一名探鬼主播惩猫,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚜点!你這毒婦竟也來(lái)了轧房?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绍绘,失蹤者是張志新(化名)和其女友劉穎奶镶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陪拘,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厂镇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了左刽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捺信。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖欠痴,靈堂內(nèi)的尸體忽然破棺而出迄靠,到底是詐尸還是另有隱情秒咨,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布掌挚,位于F島的核電站拭荤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏疫诽。R本人自食惡果不足惜舅世,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奇徒。 院中可真熱鬧雏亚,春花似錦、人聲如沸摩钙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胖笛。三九已至网持,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間长踊,已是汗流浹背功舀。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留身弊,地道東北人辟汰。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像阱佛,于是被迫代替她去往敵國(guó)和親帖汞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容