zoukankan      html  css  js  c++  java
  • Servlet学习-数据库的操作

    servlet就是一个java类,所以连接数据库的原理和普通java一样额

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html;charset=utf-8");
            response.setCharacterEncoding("utf-8");
            
            PrintWriter out = response.getWriter();
            request.setCharacterEncoding("utf-8");
            String id=request.getParameter("username");
            String password=request.getParameter("password");
            
            out.println("id = " +id);
            
            //Servlet操作数据库和普通java类一样
            
            Connection ct= null;
            PreparedStatement ps =null;
            ResultSet rs = null;
            try {
                //1.加载驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.得到连接
                ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/work", "root", "1");
                //3.创建PreparedStatment 用于传送sql查询语句
                ps=(PreparedStatement) ct.prepareStatement("select * from users where id =? and password=?");
                //给?赋值
                ps.setObject(1, id);
                ps.setObject(2, password);
                
                //4.执行操作
                rs= ps.executeQuery();
                //5.根据结果做处理
                if(rs.next())
                {//合法
                    request.getRequestDispatcher("/MainFrame").forward(request, response);
                }else
                {
                    request.setAttribute("error", "用户名 或者 密码错误!");
                    request.getRequestDispatcher("/LoginServlet").forward(request, response);
                }
                
                
            } catch (Exception e) {
                e.printStackTrace();
                // TODO: handle exception
            }finally
            {
                //关闭资源
                if(rs!=null)
                {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    rs=null;
                }
                if(ps!=null)
                {
                    try {
                        ps.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    ps=null;
                }
                if(ct!=null)
                {
                    try {
                        ct.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    ct=null;
                }
            }
            
            
            //out.println("username"+username);
            
            
    
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doGet(request, response);
    
        }
  • 相关阅读:
    制作centos镜像,启动镜像可以访问本地百度页面
    docker配置镜像加速后报错 系统 CentOS7
    代理方式获取天气预报信息
    周边分析-距离计算
    mysql随笔
    mysql笔记
    树形结构表的存储【转自:http://www.cnblogs.com/huangfox/archive/2012/04/11/2442408.html】
    Mysql中 in 和 exists 区别
    CPU飙高,系统性能问题如何排查?
    位运算的常见操作
  • 原文地址:https://www.cnblogs.com/bersaty/p/3204151.html
Copyright © 2011-2022 走看看