j'essaie de me connecter à la table 'users' de ma base de données
Je rencontre un problème avec mon application web Java. J'ai mis en place une base de données PostgreSQL et j'essaie de mettre en place l'enregistrement et la connexion des utilisateurs. Cependant, je rencontre un problème lorsque j'essaie de me connecter à la table 'users' de ma base de données.
Extrait de code 1 (DbCon.java) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public class DbCon {
private static Connection connection = null;
public static Connection getConnection() throws ClassNotFoundException, SQLException {
if (connection est null ou la connexion est fermée) {
try {
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost:5432/commer";
String user = "postgres";
String motDePasse = "motDePasse";
connection = DriverManager.getConnection(url, user, motDePasse);
System.out.println("Connexion réussie");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
throw e;
}
}
return connection;
}
} |
Extrait de code 2 (UserDao.java) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public class UserDao {
private Connection con;
private String query;
private PreparedStatement pst;
private ResultSet rs;
public UserDao(Connection con) {
this.con = con;
}
public User userLogin(String email, String motDePasse) {
User utilisateur = null;
try {
query = "select * from users where email=? and password=?";
pst = this.con.prepareStatement(query);
pst.setString(1, email);
pst.setString(2, motDePasse);
rs = pst.executeQuery();
if (rs.next()) {
utilisateur = new User();
utilisateur.setId(rs.getInt("id"));
utilisateur.setNom(rs.getString("nom"));
utilisateur.setEmail(rs.getString("email"));
}
} catch (Exception e) {
e.printStackTrace();
System.out.print(e.getMessage());
}
return utilisateur;
}
public boolean insererUtilisateur(User utilisateur) {
try {
query = "INSERT INTO users (nom, email, password) VALUES (?, ?, ?)";
pst = this.con.prepareStatement(query);
pst.setString(1, utilisateur.getNom());
pst.setString(2, utilisateur.getEmail());
pst.setString(3, utilisateur.getMotDePasse());
int lignesModifiees = pst.executeUpdate();
return lignesModifiees > 0;
} catch (SQLException e) {
e.printStackTrace();
System.out.print(e.getMessage());
return false;
}
}
} |
J'ai vérifié que la table 'users' existe dans ma base de données et que les noms de colonnes correspondent au code. Cependant, je continue de recevoir l'erreur 'relation "users" does not exist'. Pouvez-vous m'aider à résoudre ce problème ?
Problème lors de l'insertion de données dans la base de données
Je fais face à un problème lors de l'insertion de données dans ma base de données. J'ai une application Web Java ee où je collecte des informations utilisateur et j'essaie de les enregistrer dans une base de données psql.
Voici les détails de mon problème :
J'utilise Java Servlets pour gérer la demande de l'utilisateur.
J'ai créé une classe RegisterDAO pour gérer les opérations de base de données, et une classe User pour représenter les données utilisateur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
package com.account.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RegisterDAO {
private Connection con;
private String query;
private PreparedStatement pst;
private ResultSet rs;
public RegisterDAO(Connection con) {
this.con = con;
}
public boolean insertUsert(int id ,String email, String password, String name) {
boolean result = false;
try {
query = "insert into users (id, name, email, password) values (?, ?, ?, ?)";
pst = this.con.prepareStatement(query);
pst.setInt(1, id);
pst.setString(2, name);
pst.setString(3, email);
pst.setString(4, password);
pst.executeUpdate();
result = true;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return result;
}
} |
Ma base de données est configurée correctement, et la connexion à la base de données fonctionne dans d'autres parties de l'application comme login avec des données inséré avec pgadmin ou cmd.
Lorsque j'appelle la méthode insertUsert de la classe RegisterDAO pour insérer les données utilisateur, aucune exception n'est levée, mais les données ne sont pas insérées dans la base de données.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
package com.account.registration;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.DB.connection.DbCon;
import com.account.Dao.RegisterDAO;
import com.account.Dao.UserDao;
import com.account.bean.User;
public class Registration extends HttpServlet {
private static final long serialVersionUID = 1L;
public Registration() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.getServletContext().getRequestDispatcher("/WEB-INF/Registration.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try(PrintWriter out=response.getWriter()){
String name = request.getParameter("name");
String email = request.getParameter("email");
String password = request.getParameter("psw");
String passwordRepeat = request.getParameter("psw-repeat");
RegisterDAO udao = new RegisterDAO(DbCon.getConnection());
boolean result = udao.insertUsert(3 ,name, email, password);
if(result) {
out.println("register avec succès");
response.sendRedirect("/");
}else {
out.print("user not register try again");
}
}catch(ClassNotFoundException | SQLException e ){
e.printStackTrace();
}
} |
J'ai vérifié la configuration de la base de données et la table users.
Si quelqu'un a des idées sur ce qui pourrait ne pas fonctionner correctement, je serais reconnaissant pour toute aide. N'hésitez pas à demander des informations supplémentaires si nécessaire.
Merci d'avance pour votre assistance.