ПРОБЛЕМА, ПРИСОЕДИНИВ С MYSQL JDBC

мне нужно, чтобы они помогли мне, из-за которого я схожу с ума., я делаю программу, которая я хочу принести все данные о моей таблице mysql и обратить их в объект. Но согласно debug, который он реализует, у меня есть NullPointerException. PD: Связь сделана правильно, через услуги., но мне не может удаваться соединить это через код. там пойди мои классы.

@WebServlet (" / ServletControlador") public class ServletControlador extends HttpServlet {

@Override
protected void doGet(HttpServletRequest reque, HttpServletResponse respo) throws ServletException, IOException {
    List listaClientes = new conecction.ConexionDaoJDBC().listar();

    reque.setAttribute("lista", listaClientes);
    reque.getRequestDispatcher("cliente.jsp").forward(reque, respo);

}

}

В ЭТОМ КЛАССЕ ОН, ГДЕ Я ЗВОНЮ В МЕТОД, ЗАНОСИТЬ В СПИСОК, ГДЕ ОН БУДЕТ ПРИКРЕПЛЯТЬ СНАЧАЛА К КЛАССУ СВЯЗЬ. ЧТОБЫ ИСКАТЬ СВЯЗЬ В MYSQL И ПОТОМ ОН ДЕЛАЕТ SELECT И ЭТО СОХРАНЯЕТ В СПИСКЕ.

public class ConexionDaoJDBC {

private static final String SQL_SELECT = "SELECT * FROM control_clientes.cliente";

private static final String SQL_SELECT_BY_ID = "SELECT * FROM clientes WHERE idcliente =?";

private static final String SQL_INSERT = "INSERT INTO clientes(nombre, apellido, email, saldo, telefono) "
        + "values(?,?,?,?,?)";

private static final String SQL_UPDATE = "UPDATE clientes "
        + "SET nombre =?, apellido =?, email =?, saldo =?, telefono =? WHERE id_cliente =?";

private static final String SQL_DELETE = "DELETE FROM clientes WHERE idcliente =?";

public List listar() {

    List listaClientes = new ArrayList();
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null; //RECUPERA INFORMACION

    try {
        conn = Conexion.getConnection();
        stmt = conn.prepareStatement(SQL_SELECT);
        rs = stmt.executeQuery();

        while (rs.next()) {
            int idcliente = rs.getInt("idcliente");
            String nombre = rs.getString("nombre");
            String apellido = rs.getString("apellido");
            String email = rs.getString("email");
            double saldo = rs.getDouble("saldo");
            String telefono = rs.getString("telefono");

            Cliente c = new Cliente(idcliente, nombre, apellido, email, saldo, telefono);
            listaClientes.add(c);
        }

    } catch (SQLException ex) {
        System.out.println(System.in);
    } finally {
        Conexion.close(conn);
        Conexion.close(stmt);
        Conexion.main(rs);
    }
    return listaClientes;
}

МЕТОД, ЧТОБЫ ЗАНОСИТЬ В СПИСОК ВСЕ РЕЕСТРЫ. КАК Я СКАЗАЛ ПОИСКИ СНАЧАЛА СВЯЗЬ И ОН СОХРАНЯЕТ, КАК Я ВОЗРАЖАЮ.

public class Conexion {

private static final String JDBC_URL = "jdbc:mysql://localhost:3306/control_clientes?useSSL=false&useTimezone=true&serverTimezone=UTC&allowPublicKeyRetrieval=true";
private static final String JDBC_USER = "root";
private static final String JDBC_PASS = "admin";

public static BasicDataSource getDataSource() {
    BasicDataSource ds = new BasicDataSource();
    ds.setUrl(JDBC_URL);
    ds.setUsername(JDBC_USER);
    ds.setPassword(JDBC_PASS);
    ds.setInitialSize(50); //ESTABLECEMOS CUANTAS CONEXIONES QUEREMOS
    return ds;
}

public static Connection getConnection() throws SQLException {
    return getDataSource().getConnection();
}

public static void main(ResultSet rs) {
    try {
        rs.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }

}

public static void close(PreparedStatement ps) {
    try {
        ps.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }
}

public static void close(Connection conn) {
    try {
        conn.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }
}

} И В КОНЦЕ КОНЦОВ КЛАСС СВЯЗЬ

И Я ОСТАВЛЯЮ МОЮ ТАБЛИЦУ MYSQL.

introducir la descripción de la imagen aquí

Я НАДЕЮСЬ, ЧТО КТО-ТО МОЖЕТ ПОМОГАТЬ МНЕ. ДОЛЖЕН БУДЬ БЫТЬ BOLUDES. Спасибо

0
задан 05.11.2019, 01:09
1 ответ

Как кажется, тебе не хватает regitrar класса JDBC mysql:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexion {

private static final String JDBC_URL = "jdbc:mysql://localhost:3306/control_clientes?useSSL=false&useTimezone=true&serverTimezone=UTC&allowPublicKeyRetrieval=true";
private static final String JDBC_USER = "root";
private static final String JDBC_PASS = "admin";

public static BasicDataSource getDataSource() {
    Class.forName("com.mysql.jdbc.Driver"); //Driver de mysql
    BasicDataSource ds = new BasicDataSource();
    ds.setUrl(JDBC_URL);
    ds.setUsername(JDBC_USER);
    ds.setPassword(JDBC_PASS);
    ds.setInitialSize(50); //ESTABLECEMOS CUANTAS CONEXIONES QUEREMOS
    return ds;
}

public static Connection getConnection() throws SQLException {
    return getDataSource().getConnection();
}

public static void main(ResultSet rs) {
    try {
        rs.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }

}

public static void close(PreparedStatement ps) {
    try {
        ps.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }
}

public static void close(Connection conn) {
    try {
        conn.close();
    } catch (SQLException ex) {
        ex.printStackTrace(System.out);
    }
}
0
ответ дан 01.12.2019, 12:46