简体   繁体   English

Java EE 与 MySql 错误的连接

[英]Java EE Connection with MySql ERROR

I try to connect to mysql database on my Java EE project but i get an error and I do not know where is the problem.我尝试连接到我的 Java EE 项目上的 mysql 数据库,但出现错误,我不知道问题出在哪里。 And this is SERVLET, CLASS AND ERRORS这是SERVLET,类和错误

The Java EE Servlet: Java EE Servlet:

package com.hopital.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.hopital.database.Recup_Insert;
import com.hopital.forms.Connections;


@WebServlet("/hopital")
public class hopital extends HttpServlet {
    private static final long serialVersionUID = 1L;   

    public hopital() {
        super();

    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//extrait les cookies
        Cookie[] cookies= request.getCookies();
        if(cookies != null){
            for(Cookie cookie: cookies){
                if(cookie.getName().equals("login")){
                    request.setAttribute("login", cookie.getValue());
                }
            }
        }
//session
        HttpSession session= request.getSession();
        String login= (String) session.getAttribute("login");
        request.setAttribute("login", login);

//extrait les chambers

        Recup_Insert tableChamber= new Recup_Insert();
        request.setAttribute("chambres",tableChamber.recup_chmabre());


        this.getServletContext().getRequestDispatcher("/WEB-INF/home.jsp").forward(request,response);
    }






    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//verification de champs
        Connections form= new Connections();
        form.verifie(request);
        request.setAttribute("form", form);

//stocke les champs entre
        String login=request.getParameter("login");
        String pass=request.getParameter("pass");

//cree un cookies
        Cookie cookie=new Cookie("login",login);
        cookie.setMaxAge(60*60*24*30);
        response.addCookie(cookie);

// cree un session sur login et mot de passe
        HttpSession session= request.getSession();
        session.setAttribute("login", login);
        session.setAttribute("pass", pass);

        this.getServletContext().getRequestDispatcher("/WEB-INF/home.jsp").forward(request,response);
    }

}

My class that contain the database connexion:我的包含数据库连接的类:

package com.hopital.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import com.hopital.projet.chamber;


public class Recup_Insert {
    public List<chamber> recup_chmabre(){

        List<chamber> chambers= new ArrayList<chamber>();

//charger les drivers
        try{
            Class.forName("com.mysql.jdbc.Driver");
        }catch( ClassNotFoundException e){
        }
//Connexion
        Connection connexion=null;
        Statement statement=null;
        ResultSet resultat = null;
        try {
            connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/hopital", "root", "3636");

            statement= connexion.createStatement();

            resultat= statement.executeQuery("SELECT * FROM CHAMBER;");

            while(resultat.next()){
                int etage = resultat.getInt("etage");
                int ID_pat = resultat.getInt("ID_pat");
                int num = resultat.getInt("num");
                int nom_lits = resultat.getInt("nom_lits");
                int occupee = resultat.getInt("occupee");

                chamber chamber = new chamber();
                chamber.setEtage(etage);
                chamber.setID_pat(ID_pat);
                chamber.setNum(num);
                chamber.setOccupee(occupee);
                chamber.setNom_lits(nom_lits);

                chambers.add(chamber);

            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            try{
                if(resultat != null)resultat.close();
                if(statement != null)statement.close();
                if(connexion != null)connexion.close();

            }catch(SQLException ignore){
            }
        }


        return chambers;

    }

}

AND THIS IS THE ERRORS AFTER RUNING:这是运行后的错误:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:983)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:339)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2252)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2285)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2084)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.hopital.database.Recup_Insert.recup_chmabre(Recup_Insert.java:29)
    at com.hopital.servlet.hopital.doGet(hopital.java:44)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:214)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:298)
    ... 39 more

Check connection URL and credentials.检查连接 URL 和凭据。 Try connecting with the same parameters using some SQL client.尝试使用某些 SQL 客户端使用相同的参数进行连接。

You got this error because you cannot connect to database.您收到此错误是因为您无法连接到数据库。 Most probably you didn't start you server.很可能你没有启动你的服务器。 Check either it running or not, then double check port where it is running.检查它是否正在运行,然后仔细检查它正在运行的端口。 Also check spelling on table name in database it should be "hopital".还要检查数据库中表名的拼写,它应该是“hopital”。

Check For mysql-connector-java-5.1.21-bin.jar file added to Properties=>libraries=>检查mysql-connector-java-5.1.21-bin.jar文件是否添加到Properties=>libraries=>
if not then add external jar=>mysql-connector-java-5.1.21-bin.jar如果没有,则添加外部 jar=>mysql-connector-java-5.1.21-bin.jar

also check port number of tomcat server and mysql.还要检查tomcat服务器和mysql的端口号

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM