zoukankan      html  css  js  c++  java
  • 在线短信平台.

    BaseDao:

    public class BaseDao {
    
        protected Connection con = null;
        protected PreparedStatement ps = null;
        protected ResultSet rs = null;
        
        
        private final static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
           private final static String url="jdbc:sqlserver://192.168.16.19:1433;DatabaseName=BBS_Message";
           private static String user="sa";
           private static String password="";
           public void openConnection(){
               try {
                Class.forName(driver);
                 if(con==null||con.isClosed()){
                     con=DriverManager.getConnection(url,user,password);
                 }
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
           }
    
        //获取连接
        protected void openConnection2(){
                try {
                    Context ctx = new InitialContext();
                    DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/Message");
                    con = ds.getConnection();
                } catch (NamingException e) {
                    e.printStackTrace();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
        }    
        
        //更新新据库
        public int executeUpdata(String sql, List<Object> list){        
            openConnection();
            try {
                ps = con.prepareStatement(sql);
                if(list == null)
                    return ps.executeUpdate();
                int i = 1;
                for(Object obj:list){
                    ps.setObject(i, obj);
                    i++;
                }
                return ps.executeUpdate();
            } catch (SQLException e) {            
                e.printStackTrace();
            }finally{
                closeResource();
            }
            return 0;
        }
        
        //关闭流
        protected void closeResource(){        
        try {
            if(rs != null)
                rs.close();
            if(ps != null)
                ps.close();
            if(con != null)
                con.close();
            
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }

    BBSMessageDao:

    public interface BBSMessageDao {
        //查询短信息
        public List<BBSMessage>  getMessagesByPage(Map<String,Object> elements);
        //更新短信息
        public int executeUpdate(String operate, Map<String,Object> elements, Map<String,Object> conditions);
        //获取短信条数
        public int getMsgsCount(String username);
    }

    UserinfoDao:

    public interface UserinfoDao {
        //查找用户
        public List<UserInfo> getUsers(Map<String,String> contitions);
        //添加或更新用户
        public int executeUpdate(String operate, UserInfo userinfo);
    }

    BBSMessageDao :

    public class BBSMessageDaoImpl extends BaseDao implements BBSMessageDao {
        /*
         * 执行update操作
         * @param
         *     operate:执行插入、更新还是删除
         *     elements:需要插入或者更新的值集合,key对应column,value是插入或者更新的值
         *     conditions:update执行的条件集合,key对应column,value是条件值
         */
        public int executeUpdate(String operate, Map <String,Object>elements, Map <String,Object>conditions) {
            List<Object> list = null;
            String sql = null;
            String msgid= null ,username= null,title= null,msgcontent= null,state= null,sendto= null;
            Date msg_create_date=null;
            /*
             * 获取需要变更的值
             */
            if(elements!=null && elements.size()>0){
                msgid = (String)elements.get("msgid");
                username = (String)elements.get("username");
                title = (String)elements.get("title");
                msgcontent = (String)elements.get("msgcontent");
                state = (String)elements.get("state");
                sendto = (String)elements.get("sendto");
                msg_create_date = (Date)elements.get("msg_create_date");        
            }
            
            
            
            /*
             * 更新操作
             */
            if(operate.equals("update")){
                /*
                 * 拼写更新sql
                 */
                sql = "update msg set ";
                /*
                 * 获取条件元素
                 */
                String ctn_msgid = (String)conditions.get("msgid");
                String ctn_username = (String)conditions.get("username");
                String ctn_title = (String)conditions.get("title");
                String ctn_msgcontent = (String)conditions.get("msgcontent");
                String ctn_state = (String)conditions.get("state");
                String ctn_sendto = (String)conditions.get("sendto");
                Date ctn_msg_create_date = (Date)conditions.get("msg_create_date");
                /*
                 * 写出sql更新语句
                 */
                String and = "";
                sql += msgid!=null ? and + " msgid=? ":"";
                and = msgid!=null ? " and ":"";
                sql += username!=null ? and + " username=? ":"";
                and = username!=null ? " and ":"";
                sql += title!=null ? and + " title='" + title + "' ":"";
                and = title!=null ? " and ":"";
                sql += msgcontent!=null ? and + " msgcontent=? ":"";
                and = msgcontent!=null ? " and ":"";
                sql += sendto!=null ? and + " sendto=? ":"";
                and = sendto!=null ? " and ":"";
                sql += state!=null ? and + " state=? ":"";
                and = state!=null ? " and ":"";
                sql += msg_create_date != null ? and + " msg_create_date=? ":"";
                /*
                 * 写出sql条件语句
                 */    
                sql = sql + " where 1=1 ";
                sql += ctn_msgid != null ? " and msgid=? ":"";
                sql += ctn_username != null ? " and username=? ":"";
                sql += ctn_title != null ? " and title='" + title + "' ":"";
                sql += ctn_msgcontent != null ? " and msgcontent=? ":"";
                sql += ctn_sendto != null ? " and sendto=? ":"";
                sql += ctn_state != null ? " and state=? ":"";
                sql += ctn_msg_create_date != null ? " and msg_create_date=? ":"";
                
                list = new ArrayList<Object>();
                /*
                 * 设置更新参数
                 */
                if(msgid != null)
                    list.add(msgid);
                if(username != null)
                    list.add(username);
                if(title != null)
                    list.add(title);
                if(msgcontent != null)
                    list.add(msgcontent);
                if(sendto != null)
                    list.add(sendto);
                if(state != null)
                    list.add(state);
                if(msg_create_date != null)
                    list.add(new Timestamp(msg_create_date.getTime()));
                /*
                 * 设置条件参数
                 */
                if(ctn_msgid != null)
                    list.add(ctn_msgid);
                if(ctn_username != null)
                    list.add(ctn_username);
                if(ctn_title != null)
                    list.add(ctn_title);
                if(ctn_msgcontent != null)
                    list.add(ctn_msgcontent);
                if(ctn_sendto != null)
                    list.add(ctn_sendto);
                if(ctn_state != null)
                    list.add(ctn_state);
                if(ctn_msg_create_date != null)
                    list.add(new Timestamp(ctn_msg_create_date.getTime()));
            }
            /*
             * 添加操作
             */
            else if(operate.equals("insert")){
                sql = "insert into msg values(?,?,?,?,?,?,?)";
                list = new ArrayList<Object>();
                list.add(msgid);
                list.add(username);
                list.add(title);
                list.add(msgcontent);
                list.add(state);
                list.add(sendto);
                list.add(new Timestamp(msg_create_date.getTime()));
            }
            /*
             * 删除操作
             */
            else if(operate.equals("delete")){
                sql = "delete from msg where msgid = ?";
                list = new ArrayList<Object>();
                msgid = (String)conditions.get("msgid");
                list.add(msgid);
            }
            return executeUpdata(sql, list);
        }
        /*
         * 执行查询操作
         * @param
         *     elements:查询条件集合     
         */    
        public List<BBSMessage> getMessagesByPage(Map<String,Object> elements) {        
            /*
             * 获取查询语句中的条件参数
             */        
            Integer msgs_in_one_page = (Integer)elements.get("msgs_in_one_page");
            Integer page_no = (Integer)elements.get("page_no");
            String username = (String)elements.get("username");
            String msgid = (String)elements.get("msgid");
            String title = (String)elements.get("title");
            String msgcontent = (String)elements.get("msgcontent");
            String sendto = (String)elements.get("sendto");
            Integer state = (Integer)elements.get("state");
            Date msg_create_date = (Date)elements.get("msg_create_date");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");        
            /*
             * 拼写sql
             */
            String sql = null;        
            if(page_no == null){
                sql = "select * from msg where 1 = 1 ";
            }else{                    
                sql = "select * from" +
                "(select msg.*,rownum r from msg where 1=1 and " + 
                username + title + msgcontent + sendto + state + msg_create_date + 
                " and rownum <= " + msgs_in_one_page*page_no + ") " +
                "t where t.r >" + msgs_in_one_page*(page_no - 1);
            }
            /*
             * 编写条件语句
             */        
            sql += msgid!=null ? " and msgid='" + msgid + "' ":"";
            sql += username != null?" and username='" + username + "' ":"";
            sql += title!=null ? " and title='" + title + "' ":"";
            sql += msgcontent!=null ? " and msgcontent='" + msgcontent + "' ":"";
            sql += sendto!=null ? " and sendto='" + sendto + "' ":"";
            sql += state!=null ? " and state=" + state + " ":"";
            sql += msg_create_date!=null ? " and msg_create_date='" + sdf.format(msg_create_date) + "' ":"";    
            
            /*
             * 返回结果
             */
            List <BBSMessage>list = null;        
            openConnection();
            list = new ArrayList<BBSMessage>();
            try {
                ps = con.prepareStatement(sql);
                rs = ps.executeQuery();
                while(rs.next()){
                    BBSMessage bms = new BBSMessage();
                    bms.setMsgid(rs.getString("msgid"));
                    bms.setTitle(rs.getString("title"));
                    bms.setContent(rs.getString("msgcontent"));
                    bms.setSendto(rs.getString("sendto"));
                    bms.setState(rs.getInt("state"));
                    bms.setDatetime(rs.getDate("msg_create_date"));
                    bms.setUsername(rs.getString("username"));
                    list.add(bms);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                closeResource();
            }
            return list;
        }
    
        public int getMsgsCount(String username) {        
            String always_true = " where 1=1 ";
            int count = 0;
            if(username == null){
                username = "";
            }else{
                username = " and username = '" + username + "'";
            }    
            String sql = "select count(*) from msg " + always_true + username;
            
            openConnection();
            try {
                ps = con.prepareStatement(sql);
                rs = ps.executeQuery();
                while(rs.next())
                    count = rs.getInt(1);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return count;
        }
    
    }

    UserinfoDaoImpl:

    public class UserinfoDaoImpl extends BaseDao implements UserinfoDao {
        
        //添加或更新用户
        public int executeUpdate(String operate, UserInfo userinfo) {
            List<Object> list = null;
            String sql = null;
            if(operate.equals("update")){
                sql = "update msg_userinfo set password=? where username = '" + userinfo.getUsername() + "'";
                list = new ArrayList<Object>();
                list.add(userinfo.getPassword());
            }else if(operate.equals("insert")){
                sql = "insert into msg_userinfo values(?,?,?)";
                list = new ArrayList<Object>();
                list.add(userinfo.getUsername());
                list.add(userinfo.getPassword());
                list.add(userinfo.getEmail());
            }
            return executeUpdata(sql, list);
        }
    
        //查找用户
        public List<UserInfo> getUsers(Map<String,String> contitions) {
            String username = (String) contitions.get("username");
            String pwd = (String) contitions.get("pwd");
            String operate = (String)contitions.get("operate");
            String sql = "select * from msg_userinfo where 1=1 ";
            if(operate != null && operate.equals("except")){
                sql += username != null ? " and username != '" + username + "'":"";
            }else{
                sql += username != null ? " and username = '" + username + "'":"";
            }
            sql += pwd != null ? " and password = '" + pwd + "'":"";
            openConnection();
            List<UserInfo> users = new ArrayList<UserInfo>();
            try {
                ps = con.prepareStatement(sql);
                rs = ps.executeQuery();
                while(rs.next()){
                    UserInfo uf = new UserInfo();
                    uf.setUsername(rs.getString("username"));
                    uf.setPassword(rs.getString("password"));
                    uf.setEmail(rs.getString("email"));
                    users.add(uf);                
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                closeResource();
            }        
            return users;
        }
    }

    BBSMessage:

    public class BBSMessage{
    
        private String msgid = null;//ID
        private String username = null;//发送方
        private String title = null;//标题
        private String content = null;//内容
        private int state = 0;//用户名
        private String sendto=null;//收件方
        private Date datetime = null;//发送时间
        public String getMsgid() {
            return msgid;
        }
        public void setMsgid(String msgid) {
            this.msgid = msgid;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getContent() {
            return content;
        }
        public void setContent(String content) {
            this.content = content;
        }
        public int getState() {
            return state;
        }
        public void setState(int state) {
            this.state = state;
        }
        public String getSendto() {
            return sendto;
        }
        public void setSendto(String sendto) {
            this.sendto = sendto;
        }
        public Date getDatetime() {
            return datetime;
        }
        public void setDatetime(Date datetime) {
            this.datetime = datetime;
        }
    }

    UserInfo:

    public class UserInfo{
    
        private String username = null;//用户名
        private String password = null;//密码
        private String email = null;//电子邮箱
        
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }

    注册:

    <script type="text/javascript">
    $(function(){
        $(".btn-reg").bind("click", function(){
            window.location.href = "register.jsp";
        });
    });
    
    function check(){
        var username = document.getElementById("username");
        var password = document.getElementById("password");
        var error = document.getElementById("error");
        if(username.value == ""){
            error.innerHTML="<font color="red">用户名不能为空!</font>";
            username.focus();
            return false;
        }else if(password.value == ""){
            error.innerHTML="<font color="red">密码不能为空!</font>";
            password.focus();                
            return false;
        }
        return true;
    }
    </script>
    </head>
    <body>
       <!--
         
        jsp_Writer(){
       } -->
       <%
         int i=5;
       %>
       <%
        i++;
       %>
       <%=i %>
    
    
    
    
    
    
    
    <div id="loginTitle" class="png"></div>
    <div id="loginForm" class="userForm png">
        <form method="post" name="loginform" action="UserServlet?action=login" onsubmit = "return check()">        
            <dl>            
                <div id="error">${error}</div>
                <dt>用户名:</dt>
                <dd><input type="text" name="username" /></dd>
                <dt>密 码:</dt>
                <dd><input type="password" name="password" /></dd>
            </dl>
            <div class="buttons">
                <input class="btn-login png" type="submit" name="submit" value=" " /><input class="btn-reg png" type="button" name="register" value=" " />
            </div>        

    当前用户,退出:

    <script type="text/javascript">
    $(function(){
        $(".btn-reg").bind("click", function(){
            window.location.href = "register.jsp";
        });
    });
    
    function check(){
        var username = document.getElementById("username");
        var password = document.getElementById("password");
        var error = document.getElementById("error");
        if(username.value == ""){
            error.innerHTML="<font color="red">用户名不能为空!</font>";
            username.focus();
            return false;
        }else if(password.value == ""){
            error.innerHTML="<font color="red">密码不能为空!</font>";
            password.focus();                
            return false;
        }
        return true;
    }
    </script>
    </head>
    <body>
       <!--
         
        jsp_Writer(){
       } -->
       <%
         int i=5;
       %>
       <%
        i++;
       %>
       <%=i %>
    
    
    
    
    
    
    
    <div id="loginTitle" class="png"></div>
    <div id="loginForm" class="userForm png">
        <form method="post" name="loginform" action="UserServlet?action=login" onsubmit = "return check()">        
            <dl>            
                <div id="error">${error}</div>
                <dt>用户名:</dt>
                <dd><input type="text" name="username" /></dd>
                <dt>密 码:</dt>
                <dd><input type="password" name="password" /></dd>
            </dl>
            <div class="buttons">
                <input class="btn-login png" type="submit" name="submit" value=" " /><input class="btn-reg png" type="button" name="register" value=" " />
            </div>        

    当前用户发送:

     function check(){
                var title = document.getElementById("title");
                var content = document.getElementById("content");
                if(title.value == ""){
                    alert("标题不能为空!");
                    return false;
                }else if(content.value == ""){
                    alert("内容不能为空!");
                    return false;
                }
                return true;
        }
    </script>
      
     <body>
     <form action="MsgServlet?action=send" method="post" onsubmit="return check()">
        <div id="main">
            <div class="mainbox">            
                <div class="menu">
                    <span>当前用户:<a href="MsgServlet?action=list">${sessionScope.loginuser}</a></span>
                    <span><a href="UserServlet?action=findUsers">发短消息</a></span>
                    <span><a href="UserServlet?action=logout">退出</a></span>
                </div>
                <div class="content">
                    <div class="message">
                        
                            <div class="tmenu">
                                <ul class="clearfix">
                                    <li>
                                        发送给:<%String to=request.getParameter("sendto");request.setAttribute("sendto",to ); %>
                                        <select name="toUser">
                                        
                                               <c:forEach var="user" items="${users}">
                                               <c:choose>
                                                 <c:when test="${user.username eq (sendto)}">
                                                   <option selected="selected">${user.username}</option>
                                                 </c:when>
                                                 <c:when test="${user.username ne (sendto)}">
                                                  <option>${user.username}</option>
                                                 </c:when>
                                               </c:choose>
                                                   
                                               </c:forEach>
                                           </select>
                                    </li>                                
                                    <li>标题:<input type="text" name="title" id="title"/></li>
                                </ul>
                            </div>
                            <div class="view">
                                <textarea name="content" id="content"></textarea>
                                <div class="send"><input type="submit" name="submit" value=" " /></div>
                            </div>
                        
                    </div>
                </div>
            </div>
        </div>
    </form>
    </body>
    </html>
  • 相关阅读:
    LeetCode: Maximum Product Subarray 解题报告
    LeetCode: Populating Next Right Pointers in Each Node II 解题报告
    LeetCode: Populating Next Right Pointers in Each Node 解题报告
    LeetCode: Word Search 解题报告
    C语言文件操作
    多线程
    C语言函数指针的使用
    进程
    网络编程
    进程间通信——管道通信
  • 原文地址:https://www.cnblogs.com/2652405350wch/p/6817504.html
Copyright © 2011-2022 走看看