Je voudrais écrire à mon DB Oracle l'ID utilisateur et l'adresse IP de l'utilisateur connecté (application web) chaque fois que j'effectue SQL UPDATEs et INSERTs. Tels queJava web application DAO écriture authentifiée UserID et adresse IP à DB
public static int updateUser(STKUser user, STKUser loggedIn) throws DAOException {
Connection connection = null;
connection = DB.getConnFromCache();
PreparedStatement ps = null;
String query = "INSERT INTO xtblPersonnel (pID, pPssWrd, pAdminDate, pAdminIP, pAdminBy) VALUES (?,?,SYSDATE,?,?)";
try {
ps = connection.prepareStatement(query);
ps.setString(1, user.getBadge());
ps.setString(2, user.getPassword());
ps.setString(3, loggedIn.getIpAddress());
ps.setString(4, loggedIn.getBadge());
return ps.executeUpdate();
}
catch (Exception e) {
System.out.println("SQL Exception inserting new user with badge: " + user.getBadge() + ". Error Message: " + e.getMessage());
LOGGER.log(Level.INFO, "SQL Exception inserting new user with badge: " + user.getBadge() + ". Error Message: " + e.getMessage(), user);
throw new DAOException("SQL Exception inserting new user!");
// return 0;
}
finally {
DB.closePreparedStatement(ps);
DB.releaseConnToCache(connection);
}
}
STKuser est un Javabean
Mon application utilise un nom d'utilisateur d'Oracle général et mot de passe pour c'est la raison pour laquelle je veux enregistrer qui a fait la mise à jour ou d'insérer et de quelle machine.
Est-ce une approche acceptable. J'avais l'habitude de passer dans la session mais j'ai réalisé que c'est un non non.
Difficile à dire à partir des informations données. Pourquoi 2 objets STKUser? Ils semblent représenter le même utilisateur est ma conjecture. Où initialisez-vous PreparedStatement et la connexion? Où est le bloc catch? Pourquoi cette méthode est-elle déclarée statique? –
un objet STKUser représentait les données de l'employé en cours d'ajout à la base de données et le deuxième objet STKUser représentait l'administrateur connecté en faisant le SQL INSERT. J'ai édité ma réponse pour inclure plus de code – jeff