<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    計算機學習積累

    ----轉載有理,轉載是想研究,想研究才會看,看了才會有感想,轉載后我有時會寫一些自己的感受
    數據加載中……

    通過文本文檔實現信息的批量導入(轉)

    2005-08-05? ?來源:CSDN ?作者:CMTobby
    最近參與了一個網上直報項目的維護工作,該網上直報應用程序有一個功能就是通過導入文本文檔的方式向后臺數據庫中批量導入直報用戶,包括用戶各項信息如單位名稱、企業資質等級等等。其核心之處就是如何獲取所上載文本文檔中的內容,現將該部分程序簡單介紹如下:

    ??????? 首先是后臺的javabean程序如下所示:

    package ?Util;

    import ?javax.servlet. *
    ;
    import
    ?javax.servlet.http.HttpServletRequest;
    import
    ?java.util.LinkedList;
    import ?java.io. *
    ;

    public ? class
    ?ReadRequest{
    ?
    public
    ?LinkedList?getRequest(HttpServletRequest?request){
    ??LinkedList?output
    = new
    ?LinkedList();
    ??
    try
    {
    ??????ServletInputStream?in
    =
    request.getInputStream();
    ??????
    int ?len =
    request.getContentLength();
    ??????System.out.println?(len);
    ??????
    byte ?[]b = new ? byte
    [len];
    ??????in.read(b,
    0
    ,len);
    ??????String?str
    = new
    ?String(b);
    ??????System.out.println?(str);
    ??????BufferedReader?con
    = new ?BufferedReader( new
    ?StringReader(str));
    ??????String?c
    = ""
    ;
    ??????
    while ((c = con.readLine()) != null
    ){
    ???????output.add(c);
    ??????????????????????????????????}
    ?????????}
    ?????
    catch
    (Exception?e){e.printStackTrace();}
    ?????
    return
    ?output;
    ????????????????????????????????????????????????????}
    ????????????????}

    然后是寫相應的jsp測試頁面,此頁面沒有經過美工處理,僅為測試之用:)。

    ??????? index.jsp

    <% @?page?contentType = " text/html;?charset=gb2312 " ?language = " java " ? import = " java.sql.* " ?errorPage = "" ? %>
    <! DOCTYPE?HTML?PUBLIC? " -//W3C//DTD?HTML?4.01?Transitional//EN " ? " http://www.w3.org/TR/html4/loose.dtd " >
    < jsp:useBean?id = " pn " ?scope = " page " ? class = " Util.ReadRequest " />
    <%--< jsp:useBean?id = " pn " ?scope = " request " ? class = " Util.GetFile " />--%>
    <% @?page? import = " java.util.* " %>
    < html >
    < head >
    < meta?http - equiv = " Content-Type " ?content = " text/html;?charset=gb2312 " >
    < title > 測試 </ title >
    </ head >

    < body >
    < form?name = " form1 " ?action = " index.jsp " ?method = " post " ?enctype = " multipart/form-data " >
    ?
    < input?name = " sdf " ?type = " file " >< input?name = " aa " ?type = " submit " ?value = " 提交 " >
    ?
    ?
    <% ?
    LinkedList?output
    = new
    ?LinkedList();
    output
    =
    pn.getRequest(request);
    // output=pn.readHttpData(request);

    System.out.println(output.size());
    for ( int ?i = 0 ;i < output.size();i ++
    ){
    ????out.println(output.get(i)
    + " <br> "
    );
    ???????????????????????????????????????????????????}
    ?
    %>

    </ form >
    </ body >
    </ html >

    這樣就會輸出文檔中的內容來了,當然還有一些其他的內容,可根據實際需要對內容進行處理。需要注意的是,在該網上直報程序中,文檔的格式是有要求的,每行為一個公司的基本信息,各個屬性之間用“,”隔開(也可以是其他的符號如“@”),并且各個屬性出現的順序也是固定的(如必須第一項是法人代碼,第二項是公司名稱)。得到了文檔中的內容后,就可以用一個循環批量的插入用戶信息了。比如說,我上載的文本文檔內容如下所示:

    ??????? 300000000,武漢,420101,230,A304,A211,4700
    ??????? 300000001,武漢,420101,230,A304,A211,4700
    ??????? 300000002,武漢,420101,230,A304,A211,4700
    ??????? 300000003,武漢,420101,230,A304,A211,4700
    首先對output進行處理,把前面的http頭內容如:Content-Disposition: form-data; name="sdf"; filename="C:\Documents and Settings\yy\桌面\test_jz.txt"以及尾remove掉,現在的output就只有文檔中的內容了。然后就開始插入數據庫(只給出代碼片斷):

    //以下代碼僅適合本人的例子,具體情況具體而定

    for ( int ?i = 0 ;i < output.size();i ++ ){
    ?
    if ?(output.get(i)? == ? null ? || ?(?(String)?output.get(i)).equals( ""
    ))?{
    ??????????
    continue ;? // 空行則自動換行????????}

    ?String?s? = ?(String)?output.get(i);? // 取得一行?String[]?ss?=?s.split(",");
    ?String?sql = " insert?into?xt_user(f001,f002,f003,f004,f005,f006)?values(?,?,?,?,?,?) " ;
    ?PreparedStatement?ps
    =
    con.prepareStatement(sql);
    ?ps.setString(
    1 ,ss[ 0
    ]);
    ?ps.setString(
    2 ,ss[ 1
    ]);
    ?ps.setString(
    3 ,ss[ 2
    ]);
    ?ps.setString(
    4 ,ss[ 3
    ]);
    ?ps.setString(
    5 ,ss[ 4
    ]);
    ?ps.setString(
    6 ,ss[ 5
    ]);
    ?ps.executeUpdate();
    ?????????????????????????????}

    posted on 2006-07-18 11:01 freebird 閱讀(310) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 男人都懂www深夜免费网站| 日本高清色本免费现在观看| 亚洲春色另类小说| 国产精品美女自在线观看免费| 国产无遮挡又黄又爽免费网站| 一个人晚上在线观看的免费视频| 免费黄色小视频网站| 大片免费观看92在线视频线视频 | 亚洲综合激情另类专区| 亚洲av无码专区首页| 亚洲乱码无码永久不卡在线 | 亚洲AV无码专区电影在线观看| 手机在线看永久av片免费| 成年大片免费高清在线看黄| 亚洲毛片无码专区亚洲乱| 国产成人免费高清在线观看| 一级毛片在线免费观看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 蜜桃视频在线观看免费视频网站WWW| 亚洲精华液一二三产区| 亚洲精品高清久久| 99久久免费看国产精品| 小说专区亚洲春色校园| 亚洲最大在线视频| 国产亚洲综合一区柠檬导航| 国产精品公开免费视频| 69免费视频大片| 最近国语视频在线观看免费播放 | 亚洲综合精品网站| 中字幕视频在线永久在线观看免费| 中文字幕在线成人免费看| 亚洲一区二区三区丝袜| 国产片免费在线观看| 黄色网址免费观看| 国产激情免费视频在线观看| 日韩在线视频线视频免费网站| 亚洲国产成人久久综合| va天堂va亚洲va影视中文字幕 | 亚洲人成网站色在线观看| 亚洲AV日韩AV永久无码绿巨人| 国产av无码专区亚洲国产精品 |