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

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

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

    JPBC ing: 留言板之一:用JAVABEAN與DAO封裝數據的業務邏輯及操作

    ??????首先,先用DAO把數據業務邏輯部分分離開來,因為我只用到MySQL,所以就省略了工廠類,定了一個業務邏輯的接口及實現它的類。

    ?????MessageDAO.java??????
    package?DAO.iface;

    import?java.util.List;
    /**
    ?*?進行數據操作的業務邏輯類接口的DAO
    ?*?
    @author?Administrator
    ?*
    ?
    */

    public?interface?MessageDAO?{
    ????
    public?List?getMessageList();
    }


    ???MessageDAOMySQL.java
    package?DAO.impl;

    import?java.sql.Connection;
    import?java.sql.ResultSet;
    import?java.sql.SQLException;
    import?java.sql.Statement;
    import?java.util.ArrayList;
    import?java.util.List;

    import?bean.DatabaseBean;
    import?bean.MessageBoardBean;

    import?DAO.iface.MessageDAO;
    /**
    ?*?進行數據操作的業務邏輯類
    ?*?
    @author?Administrator
    ?*
    ?
    */

    public?class?MessageDAOMySQL?implements?MessageDAO?{
    ????
    private?DatabaseBean?db?=?null;
    ????
    private?Connection?conn?=?null;
    ????
    private?Statement?stmt?=?null;
    ????
    private?ResultSet?rs?=?null;
    ????
    private?List<MessageBoardBean>?messageList;

    ????
    public?MessageDAOMySQL()?{
    ????????db?
    =?new?DatabaseBean();
    ????}


    ????
    public?List?getMessageList()?{
    ????????????messageList?
    =?new?ArrayList<MessageBoardBean>();
    ????????????conn?
    =?db.getConn();
    ????????????stmt?
    =?db.getStatement(conn);
    ????????????rs?
    =?db.getResultSet(stmt,?"select?*?from?messageboard;");
    ????????????
    try?{
    ????????????????
    while?(rs.next())?{
    ????????????????????MessageBoardBean?tempMessage?
    =?new?MessageBoardBean();
    ????????????????????tempMessage.setUserName(rs.getString(
    2));
    ????????????????????tempMessage.setTitle(rs.getString(
    3));
    ????????????????????tempMessage.setWords(rs.getString(
    4));
    ????????????????????tempMessage.setTime(rs.getString(
    5));
    ????????????????????messageList.add(tempMessage);
    ????????????????}

    ????????????}
    ?catch?(SQLException?e)?{
    ????????????????e.printStackTrace();
    ????????????}
    ?finally?{
    ????????????????db.close(rs);
    ????????????????db.close(stmt);
    ????????????????db.close(conn);
    ????????????}

    ????????????
    return?messageList;
    ????}


    }


    ??????為了對外擴展可能在此用到數據庫的操作,所以將數據庫的連接和簡單的增刪改查等操作封裝到一個Bean中。

    ???DatabaseBean.java
    ???
    package?bean;

    import?java.sql.Connection;
    import?java.sql.DriverManager;
    import?java.sql.ResultSet;
    import?java.sql.SQLException;
    import?java.sql.Statement;


    public?class?DatabaseBean?{

    ????
    /**
    ?????*?數據庫的封裝,javaBean
    ?????*?
    @param?nonels
    ?????
    */

    ????
    public??Connection?getConn()?{
    ????????Connection?conn?
    =?null;
    ????????
    try?{
    ????????????Class.forName(
    "com.mysql.jdbc.Driver");
    ????????????conn?
    =?DriverManager.getConnection("jdbc:mysql://localhost/JPBC?user=root&password=root");
    ????????}
    ?catch?(ClassNotFoundException?e)?{
    ????????????e.printStackTrace();
    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????????
    return?conn;
    ????}

    ????
    ????
    public??Statement?getStatement(Connection?conn)?{
    ????????Statement?stmt?
    =?null;
    ????????
    try?{
    ????????????
    if(conn?!=?null)?{
    ????????????????stmt?
    =?conn.createStatement();
    ????????????}
    ?
    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????????
    return?stmt;
    ????}

    ????
    ????
    public??ResultSet?getResultSet(Statement?stmt,?String?sql)?{
    ????????ResultSet?rs?
    =?null;
    ????????
    try?{
    ????????????
    if(stmt?!=?null)?{
    ????????????????rs?
    =?stmt.executeQuery(sql);
    ????????????}

    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????????
    return?rs;
    ????}

    ????
    ????
    public??void?close(Connection?conn)?{
    ????????
    try?{
    ????????????
    if(conn?!=?null)?{
    ????????????????conn.close();
    ????????????????conn?
    =?null;
    ????????????}

    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????}

    ????
    ????
    public??void?close(Statement?stmt)?{
    ????????
    try?{
    ????????????
    if(stmt?!=?null)?{
    ????????????????stmt.close();
    ????????????????stmt?
    =?null;
    ????????????}

    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????}

    ????
    ????
    public??void?close(ResultSet?rs)?{
    ????????
    try?{
    ????????????
    if(rs?!=?null)?{
    ????????????????rs.close();
    ????????????????rs?
    =?null;
    ????????????}

    ????????}
    ?catch?(SQLException?e)?{
    ????????????e.printStackTrace();
    ????????}

    ????}


    }


    ??????再將留言板的各個信息也封裝成一個Bean

    ??????MeassageBoardBean.java
    ??????
    package?bean;
    /**
    ?*??留言板信息的bean
    ?*?
    @author?nonles
    ?*
    ?
    */


    public?class?MessageBoardBean?{
    ????
    private?String?userName;
    ????
    private?String?title;
    ????
    private?String?words;
    ????
    private?String?time;
    ????
    ????
    public?MessageBoardBean()?{
    ????????
    ????}

    ????
    ????
    public?String?getTime()?{
    ????????
    return?time;
    ????}

    ????
    public?void?setTime(String?time)?{
    ????????
    this.time?=?time;
    ????}

    ????
    public?String?getTitle()?{
    ????????
    return?title;
    ????}

    ????
    public?void?setTitle(String?title)?{
    ????????
    this.title?=?title;
    ????}

    ????
    public?String?getUserName()?{
    ????????
    return?userName;
    ????}

    ????
    public?void?setUserName(String?userName)?{
    ????????
    this.userName?=?userName;
    ????}

    ????
    public?String?getWords()?{
    ????????
    return?words;
    ????}

    ????
    public?void?setWords(String?words)?{
    ????????
    this.words?=?words;
    ????}

    ????
    }

    posted on 2008-10-16 23:45 nonels 閱讀(804) 評論(1)  編輯  收藏 所屬分類: J2EE

    評論

    # re: JPBC ing: 留言板之一:用JAVABEAN與DAO封裝數據的業務邏輯及操作 2012-12-10 09:26 黑色紀念館

    能具體解釋一下每行代碼的意思嗎,非常感謝  回復  更多評論   

    <2008年10月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類(16)

    隨筆檔案(16)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费无毒a网站在线观看| 成人性生交大片免费看中文| 中文字幕亚洲第一| 无码午夜成人1000部免费视频| 亚洲AV无码码潮喷在线观看| 99国产精品免费视频观看| 亚洲一日韩欧美中文字幕在线| 亚洲国产高清在线一区二区三区| 久久精品国产大片免费观看| 亚洲人精品亚洲人成在线| 中文字幕亚洲专区| 中文字幕av无码无卡免费 | 一级做受视频免费是看美女| 亚洲网站在线观看| 可以免费观看的一级毛片| 日韩精品无码免费一区二区三区 | 国产精品玖玖美女张开腿让男人桶爽免费看 | 亚洲成a人片在线观看无码| 最新仑乱免费视频| 国产情侣久久久久aⅴ免费| 亚洲精品无码专区在线播放| 久久精品国产亚洲| 又粗又大又长又爽免费视频| 2020因为爱你带字幕免费观看全集 | 久久精品国产亚洲AV久| 亚洲乱码一区二区三区在线观看| 成人人免费夜夜视频观看| 亚洲视频在线免费观看| www成人免费观看网站| 在线a亚洲老鸭窝天堂av高清| 亚洲色成人中文字幕网站| 免费看的黄色大片| 国产精品色拉拉免费看| 国产一级片免费看| 一级毛片正片免费视频手机看| 亚洲中文字幕无码一去台湾| 亚洲色图在线观看| 亚洲AV无码成人专区片在线观看| 亚洲男人第一无码aⅴ网站 | 亚洲成色www久久网站夜月| 亚洲乱亚洲乱少妇无码|