IDEA下的WEB工程tomcat无法连接数据库

学习视频里面用eclipse搭建的用户管理系统项目,我自己在IDEA里面搭建,tomcat启动之后(我用的自己官网下的tomcat,不是IDEA自带的),却连不上数据库:

@WebServlet(name = "LoginDealwithServlet")
public class LoginDealwithServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        request.setCharacterEncoding("utf-8");
        //接收用户提交的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
//        System.out.println("获得输入");
        //到数据库验证
        Connection ct = null;
        ResultSet rs = null;
        PreparedStatement ps = null;
//        System.out.println("准备连上数据库了");
        try{
            //加载驱动得到连接,创建preparedStatemen,执行操作,根据结果处理
//            System.out.println("加载驱动");
            Class.forName("com.mysql.cj.jdbc.Driver");
//            System.out.println("得到连接");
            ct= DriverManager.getConnection("jdbc:mysql://localhost:3306/usermanager?useSSL=false&serverTimezone=UTC","******","*****");//?useSSL=false&serverTimezone=UTC
//            System.out.println("连上数据库了");
            ps=ct.prepareStatement("select * from user where username = ? and password = ?");
            ps.setString(1,username);
            ps.setString(2,password);
            rs=ps.executeQuery();
            if(rs.next()){
                User user = new User();
                user.setName(username);
                user.setPwd(password);
                request.setAttribute("userobj",user);            request.getRequestDispatcher("/MainFrame").forward(request,response);
//                System.out.println("连上数据库了");
            }else{
                request.setAttribute("err","用户名或密码有误");         request.getRequestDispatcher("/LoginServlet").forward(request,response);
            }
        }catch (Exception e){
            //handle exception
            System.out.println("出现异常");
        }finally {
            //关闭资源
            if(ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }}
            if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }}
            if(ct!=null){
            try {
                ct.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }}
        }
        //本地验证
//        if("123".equals(password)){
//            response.sendRedirect("/UserManager/MainFrame");
//            //request.getSession().setAttribute("username",username);
//            User user = new User();
//            user.setName(username);
//            user.setPwd(password);
//            request.getSession().setAttribute("userobj",user);
//        }else{
//            response.sendRedirect("/UserManager/LoginServlet");
//        }
    }

浏览器登录验证之后,控制台一直报“出现异常”,一直无法“得到连接”。
查看网上贴吧之后,自己操作一波发现:
需要在IDEA的WEB工程web根目录下创建一个lib,并在里面添加相应数据库的JDBC的jar包,如下图所示
Alt
而在Eclipse下却不用…用IDEA创建的springboot项目也不用…

转贴吧另外一个解决方案:
你可以在web-info文件夹下,创建目录lib,
然后将你需要在服务器上使用的jar包,复制到里面。
在配置项目的依赖,ctrl+alt+shift+s 打开项目设置,
选择Moudles–>右侧Dependencies–>右侧小加号选择1.Jar or Directories
选择你当前项目下的web-info下的lib目录。apply即可

单纯的放到tomcat的lib目录下的话,如果换台机器,其他机器上的tomcat没有你的jdbc驱动,那你的程序就跑不起来啦。 因为是从tomcat的classpath下启动jar包驱动,和你程序上传到服务器自带的驱动在使用上还是有点区别的。

发布了2 篇原创文章 · 获赞 4 · 访问量 126

猜你喜欢

转载自blog.csdn.net/MRcheng12138/article/details/104564333