• 通过自动回复机器人学Mybatis:代码重构(分层)


    imooc视频学习笔记 ----> URL:http://www.imooc.com/learn/154

    ListServlet.java

    package com.imooc.servlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.imooc.service.ListService;
    
    /**
     * 列表页面初始化控制
     */
    @SuppressWarnings("serial")
    public class ListServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // 设置编码
            req.setCharacterEncoding("UTF-8");
            // 接受页面的值
            String command = req.getParameter("command");
            String description = req.getParameter("description");
            // 向页面传值
            req.setAttribute("command", command);
            req.setAttribute("description", description);
            // 查询消息列表并传给页面
            ListService listService = new ListService();
            req.setAttribute("messageList", listService.queryMessageList(command, description));
            // 页面跳转
            req.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(req, resp);
        }
    }

    MessageDao.java

    package com.imooc.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.imooc.bean.Message;
    
    public class MessageDao {
        // 数据库驱动
        private static final String JDBC_DRIVER = "org.gjt.mm.mysql.Driver";
        // 数据库地址
        private static final String DB_URL = "jdbc:mysql://localhost:3306/miro_message";
        
        // 用户名与密码
        private static final String USER = "root";
        private static final String PASS = "pass";
        
        private static Connection conn = null;
    
        // 加载数据库驱动
        static {
            try {
                Class.forName(JDBC_DRIVER);
                conn = DriverManager.getConnection(DB_URL, USER, PASS);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        // 获取消息列表
        public List<Message> queryMessageList(String command, String description) {
            List<Message> messageList = new ArrayList<>();
            
            // SQL拼接
            StringBuilder sqlBuilder = new StringBuilder();
            sqlBuilder.append("select ID, COMMAND, DESCRIPTION, CONTENT from MESSAGE where 1=1");
            
            List<String> paramList = new ArrayList<>();
            // 判断指令是否为空
            if (command != null && !"".equals(command.trim())) {
                sqlBuilder.append(" and COMMAND=?");
                paramList.add(command);
            }
            // 判断描述是否为空
            if (description != null && !"".equals(description.trim())) {
                sqlBuilder.append(" and DESCRIPTION like '%' ? '%'");
                paramList.add(description);
            }
            
            String sql = sqlBuilder.toString();
            
            PreparedStatement prep = null;
            ResultSet result = null;
            try {
                prep = conn.prepareStatement(sql);
                // 设置SQL参数
                for (int i = 0; i != paramList.size(); ++i) {
                    prep.setString(i+1, paramList.get(i)); 
                }
                // 执行查找操作
                result = prep.executeQuery();
                while (result.next()) {
                    // 把查找结果放进List里
                    Message message = new Message();
                    messageList.add(message);
                    
                    message.setId(result.getString("ID"));
                    message.setCommand(result.getString("COMMAND"));
                    message.setDescription(result.getString("DESCRIPTION"));
                    message.setContent(result.getString("CONTENT"));
                }
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            // 如果出现异常就返回一个空的List
            return messageList;
        }
    }

    ListService.java

    package com.imooc.service;
    
    import java.util.List;
    
    import com.imooc.bean.Message;
    import com.imooc.dao.MessageDao;
    
    /**
     * 
     * 列表相关的业务功能
     *
     */
    public class ListService {
        /**
         * 获取消息列表
         */
        public List<Message> queryMessageList(String command, String description) {
            MessageDao dao = new MessageDao();
            return dao.queryMessageList(command, description);
        }
    }
  • 相关阅读:
    【转】 C++模板详解
    【转】 memcmp源码实现
    【转】 C++的精髓——虚函数
    【转】 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测
    【转】 优秀代码所具备的5大品质
    爬取贴吧中的html,并保存到相对应的文件夹中
    urllib模块通过post请求获取数据
    django,uwsgi, nginx部署项目
    Django中Ajax处理
    Django中的session于cookie的用法
  • 原文地址:https://www.cnblogs.com/xkxf/p/7082101.html
Copyright © 2020-2023  润新知