首页 > java web操作数据库的问题

java web操作数据库的问题

我想实现类似关注问题的功能,从数据库中循环输出活动表的内容,在输出的时候遍历另一张用户活动表,这张表存着用户参加过哪些活动。如果参加过,就显示已参加,否则显示未参加。
遇到的问题:在循环显示出的活动中,用户按从上到下的顺序点击参加活动,能正常工作,但是用户随机点击参加活动,就显示不出已参加的样式,我的程序有什么问题,请大家帮忙看看,该如何解决。
<%

            java.sql.Connection conn = null;
            java.lang.String strConn;
            java.sql.Statement sqlStmt = null;
            java.sql.ResultSet sqlRst = null;
            java.sql.ResultSet sqlatt = null;
            try {
                conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/yueba", "root", "123456");
                sqlStmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
                String sqlQuery = "select * from activity order by ID DESC";
                sqlRst = sqlStmt.executeQuery(sqlQuery);
                sqlStmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
                String queryatt = "select activity.*,attend.* from activity,attend where activity.ID=attend.actid order by activity.ID desc";
                sqlatt = sqlStmt.executeQuery(queryatt);
                while (sqlRst.next()) {                       
                    int flag=0;
                    String dbpubuser = sqlRst.getString("pubuser");
                    String dbtitle = sqlRst.getString("title");
                    String dbdetail = sqlRst.getString("detail");
                    int dbid = sqlRst.getInt("ID");
                    Timestamp subtime = sqlRst.getTimestamp("datetime");
                    while (sqlatt.next()) {
                        String dbattuser=sqlatt.getString("attuser");
                        int dbactid = sqlatt.getInt("actid");
                        if ((dbid == dbactid)&&(username.equals(dbattuser))) {
        %>
        <div class="jumbotron" style="padding-top: 20px;padding-bottom: 20px;margin-bottom: 15px;">
            <p><font color="green" size="5px"><%=dbpubuser%></font></p>
            <hr>
            <h3><font color="#0099CC"><%=dbtitle%></font></h3>
            <p><font size="4px"><%=dbdetail%></font></p>
            <form>
                <input type="hidden" name="actid" value="<%=dbid%>">                   
                <button  type="button" class="btn btn-success">已参加</button>
                <p style="margin-left: 700px;margin-top: -40px"><font size="3px"><%=subtime%></font></p>
            </form>               
        </div>
        <%
                    flag=1;
                    break;
                }
            }
            if(flag==0){
        %>
        <div class="jumbotron" style="padding-top: 20px;padding-bottom: 20px;margin-bottom: 15px;">
            <p><font color="green" size="5px"><%=dbpubuser%></font></p>
            <hr>
            <h3><font color="#0099CC"><%=dbtitle%></font></h3>
            <p><font size="4px"><%=dbdetail%></font></p>
            <form action="attend" method="post">
                <input type="hidden" name="actid" value="<%=dbid%>">
                <input type="hidden" name="pubuser" value="<%=dbpubuser%>">
                <button type="submit" class="btn btn-primary">参加活动</button>
                <p style="margin-left: 700px;margin-top: -40px"><font size="3px"><%=subtime%></font></p>
            </form>               
        </div>
        <%}
                }
            } catch (java.sql.SQLException e) {
                out.println(e.toString());
            } finally {
                if ((sqlRst != null) && (sqlatt != null)) {
                    try {
                        sqlRst.close();
                        sqlatt.close();
                    } catch (java.sql.SQLException el) {
                        out.println(el.toString());
                    } finally {
                        try {
                            if (sqlStmt != null) {
                                sqlStmt.close();
                            }
                        } catch (java.sql.SQLException e2) {
                            out.println(e2.toString());
                        } finally {
                            try {
                                if (conn != null) {
                                    conn.close();
                                }
                            } catch (java.sql.SQLException e3) {
                                out.println(e3.toString());
                            }
                        }
                    }
                }
            }
        %>
        这是未参加时:![图片描述][1]
        这是参加活动后:![图片描述][2]
        

通过一个字段(isRead)来判断用户是否阅读过比较好。

【热门文章】
【热门文章】