hi!When trying to do an update on my database via JDBC it doesn't do anything.
I give you the sources and if somebody can help me it would be great! thank's!
PS: everything else works perfectly.
_________________________________________________________________
La vida de los famosos al desnudo en MSN Entretenimiento
http://entretenimiento.es.msn.com/
package webusr31.pracfinal.controller;
import javax.servlet.http.HttpServletRequest;
import webusr31.pracfinal.model.impl.MailMessageSession;
public class UserCommand extends MailCommand {
public String execute(HttpServletRequest request) throws Exception {
MailMessageSession mms = (MailMessageSession)
request.getSession()
.getAttribute("message_srv");
String pass1 = request.getParameter("pass1");
String pass2 = request.getParameter("pass2");
try{
mms.changePassword(pass1, pass2);
}catch(Exception e){
if(e.getMessage().compareTo("password incorrecto")==0)
return "error4";
if(e.getMessage().compareTo("no funciona")==0)
return "error5";
}
return "ok";
}
}
package webusr31.pracfinal.model.dao;
public class UserVO
{
public int id;
public String name;
public String password;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void set_name(String n)
{
if (n == null) {
throw new IllegalArgumentException("Name is null");
}
name = n;
}
public void set_password(String p)
{
if (p == null) {
throw new IllegalArgumentException("Password is null");
}
password = p;
}
public void set_id(int i)
{
if (i == 0) {
throw new IllegalArgumentException("Id is null");
}
id = i;
}
}
package webusr31.pracfinal.model.impl;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;
import webusr31.pracfinal.model.dao.MessageVO;
import webusr31.pracfinal.model.dao.UserVO;
import webusr31.pracfinal.model.dao_sql.SqlMessageDAO;
import webusr31.pracfinal.model.dao_sql.SqlUserDAO;
import webusr31.pracfinal.model.spec.Message;
import webusr31.pracfinal.model.spec.MessageSession;
public class MailMessageSession implements MessageSession {
protected String user;
protected MailMessageSystem app;
public MailMessageSession(MailMessageSystem app,String user) {
this.user = user;
this.app = app;
}
public MailMessageSystem getSystem() {
return app;
}
public int getUserId() throws Exception {
UserVO vo = new UserVO();
SqlUserDAO UserDAO = (SqlUserDAO)app.getUserDAO();
vo = UserDAO.select_by_name(user);
return vo.id;
}
public String getUserName() {
return user;
}
public java.util.Vector userListToSend() throws Exception{
SqlUserDAO UserDAO = (SqlUserDAO)app.getUserDAO();
return UserDAO.sendUserList(getUserId());
}
public boolean sendTo(String to_name, String msg) throws Exception {
SqlMessageDAO MessageDAO = (SqlMessageDAO)app.getMessageDAO();
MessageVO vo = new MessageVO();
vo.from_id = getUserId();
SqlUserDAO UserDAO = (SqlUserDAO)app.getUserDAO();
vo.to_id = UserDAO.select_by_name(to_name).id;
vo.set_text(msg);
vo.set_date(new Date());
MessageDAO.insert(vo);
return true;
}
public boolean newUser(String name, String password) throws Exception {
SqlUserDAO UserDAO = (SqlUserDAO)app.getUserDAO();
UserVO vo = new UserVO();
vo.set_name(name);
vo.set_password(password);
UserDAO.comprobar_usuario(vo);
UserDAO.insert(vo);
return true;
}
public void changePassword(String pass1, String pass2) throws Exception {
SqlUserDAO UserDAO = (SqlUserDAO)app.getUserDAO();
UserVO vo = new UserVO();
vo.id=getUserId();
vo.set_name(getUserName());
vo.set_password(pass1);
UserDAO.comprobar_password(vo,pass2);
UserDAO.update_password(vo,pass2);
}
public Vector receivedMessages() throws Exception {
SqlMessageDAO MessageDAO = (SqlMessageDAO)app.getMessageDAO();
java.util.Vector list = MessageDAO.select_by_to(getUserId());
if (list.size() == 0)
return null;
java.util.Vector list2 = new java.util.Vector();
//Creamos una lista de mensajes a partir de los mensajesVO
Iterator it = list.iterator();
while (it.hasNext()) {
MessageVO vo = (MessageVO) it.next();
Message mess = new
Message(vo.id,app.getUserName(vo.from_id),vo.date,vo.text);
list2.add(mess);
}
return list2;
}
public boolean deleteMessage(int id) throws Exception {
SqlMessageDAO MessageDAO = (SqlMessageDAO)app.getMessageDAO();
MessageDAO.delete(id);
return true;
}
public void logout() {
}
}
package webusr31.pracfinal.model.impl;
import javax.servlet.ServletContext;
import java.util.Date;
import webusr31.pracfinal.model.spec.*;
import webusr31.pracfinal.model.dao_sql.*;
import webusr31.pracfinal.model.dao.*;
public class MailMessageSystem implements MessageSystem {
ServletContext context;
protected SqlUserDAO UserDAO;
protected SqlMessageDAO MessageDAO;
public MailMessageSystem(ServletContext context) {
this.context = context;
SqlDAOFactory DAOFactory = new SqlDAOFactory(context);
UserDAO = (SqlUserDAO) DAOFactory.newUserDAO();
MessageDAO = (SqlMessageDAO) DAOFactory.newMessageDAO();
}
public UserDAO getUserDAO() {
return UserDAO;
}
public MessageDAO getMessageDAO() {
return MessageDAO;
}
public MailMessageSession login(String user, String passwd)
throws Exception {
MailMessageSession MMS = new MailMessageSession(this, user);
UserVO DataUser = new UserVO();
DataUser = UserDAO.select_by_name(user);
if (DataUser == null)
throw new Exception("NO USER");
if (DataUser.password.compareTo(passwd) != 0)
throw new Exception("PASSWORD INC");
return MMS;
}
public String getUserName(int user_id) throws Exception {
UserVO vo = new UserVO();
vo = UserDAO.get(user_id);
return vo.name;
}
public void close() {
}
}
package webusr31.pracfinal.model.dao_sql;
import webusr31.pracfinal.model.dao.*;
import java.sql.*;
public class SqlUserDAO implements UserDAO
{
protected SqlDAOFactory dao_fact;
public SqlUserDAO(SqlDAOFactory dbcf)
{
dao_fact = dbcf;
}
public UserVO get(int id) throws Exception
{
UserVO vo = null;
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
ResultSet cursor = order.executeQuery(
"SELECT * FROM \""+DBNames.USERS_TABLE+
"\" WHERE \""+DBNames.USER_ID+"\"="+id
);
if (cursor.next()) {
vo = new UserVO();
vo.id = cursor.getInt(DBNames.USER_ID);
vo.name = cursor.getString(DBNames.USER_NAME);
vo.password = cursor.getString(DBNames.USER_PASSWORD);
}
dbc.close();
return vo;
}
public UserVO select_by_name(String name) throws Exception
{
UserVO vo = null;
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
ResultSet cursor = order.executeQuery(
"SELECT * FROM \""+DBNames.USERS_TABLE+
"\" WHERE \""+DBNames.USER_NAME+"\"='"+name+"'"
);
if (cursor.next()) {
vo = new UserVO();
vo.id = cursor.getInt(DBNames.USER_ID);
vo.name = cursor.getString(DBNames.USER_NAME);
vo.password = cursor.getString(DBNames.USER_PASSWORD);
}
dbc.close();
return vo;
}
public void insert(UserVO vo) throws Exception
{
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
// Get primary key
ResultSet cursor = order.executeQuery(
"SELECT nextval('"+DBNames.ID_SEQUENCE+"')"
);
cursor.next();
vo.id = cursor.getInt(1);
// Construct command
order.executeUpdate(
"INSERT INTO \""+DBNames.USERS_TABLE+"\" ("+
DBNames.USER_ID+","+DBNames.USER_NAME+","+
DBNames.USER_PASSWORD+") VALUES ("+
Integer.toString(vo.id)+",'"+
vo.name+"','"+vo.password+"')"
);
order.close();
dbc.close();
}
public void comprobar_usuario(UserVO vo) throws Exception
{
UserVO vo2 = null;
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
ResultSet cursor = order.executeQuery(
"SELECT * FROM \""+DBNames.USERS_TABLE+
"\" WHERE \""+DBNames.USER_NAME+"\"='"+vo.name+"'"
);
if (cursor.next())
throw new Exception("usuario existe");
dbc.close();
}
public void comprobar_password(UserVO vo, String pass2) throws Exception
{
UserVO vo2 = null;
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
ResultSet cursor = order.executeQuery(
"SELECT * FROM \""+DBNames.USERS_TABLE+
"\" WHERE \""+DBNames.USER_NAME+"\"='"+vo.name+"'"
);
if (cursor.next()) {
vo2 = new UserVO();
vo2.id = cursor.getInt(DBNames.USER_ID);
vo2.name = cursor.getString(DBNames.USER_NAME);
vo2.password = cursor.getString(DBNames.USER_PASSWORD);
}
dbc.close();
if (vo2 == null)
throw new Exception("no funciona");
if (vo2.password.compareTo(vo.password) != 0)
throw new Exception("password incorrecto");
}
public void update_password(UserVO vo, String pass2) throws Exception{
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
order.executeUpdate(
"UPDATE \""+DBNames.USERS_TABLE+"\"SET
\""+DBNames.USER_PASSWORD+" \"= \"'"+pass2+"' \"WHERE \""+DBNames.USER_ID+" \"=
\""+Integer.toString(vo.id)+""
);
order.close();
dbc.close();
}
// Función implementada para obtener la lista de usuarios para enviar
public java.util.Vector sendUserList(int user_id) throws Exception
{
java.util.Vector list = new java.util.Vector();
Connection dbc = dao_fact.getDBConnection();
Statement order = dbc.createStatement();
ResultSet cursor = order.executeQuery(
"SELECT * FROM \""+DBNames.USERS_TABLE+
"\" WHERE \""+DBNames.USER_ID+"\"!="+user_id
);
while (cursor.next()) {
UserVO vo = new UserVO();
vo.id = cursor.getInt(DBNames.USER_ID);
vo.name = cursor.getString(DBNames.USER_NAME);
list.addElement(vo);
}
order.close();
dbc.close();
return list;
}
}
package webusr31.pracfinal.model.dao_sql;
public class DBNames
{
public static final String ID_SEQUENCE = "id_generator";
public static final String USERS_TABLE = "users";
public static final String MESSAGES_TABLE = "messages";
public static final String THEMES_TABLE = "themes";
public static final String QUESTIONS_TABLE = "questions";
public static final String ANSWERS_TABLE = "answers";
public static final String USER_ID = "id";
public static final String USER_NAME = "name";
public static final String USER_PASSWORD = "password";
public static final String MESSAGE_ID = "id";
public static final String MESSAGE_FROM_ID = "from_id";
public static final String MESSAGE_TO_ID = "to_id";
public static final String MESSAGE_DATE = "date";
public static final String MESSAGE_TEXT = "text";
public static final String MESSAGE_SUBJECT = "subject";
public static final String THEME_ID = "id";
public static final String THEME_LEADER = "leader";
public static final String THEME_TITLE = "title";
public static final String THEME_DESCRIPTION = "description";
public static final String QUESTION_ID = "id";
public static final String QUESTION_USER = "user";
public static final String QUESTION_SUBJECT = "subject";
public static final String QUESTION_DATE = "date";
public static final String QUESTION_TEXT = "text";
public static final String ANSWER_ID = "id";
public static final String ANSWER_USER = "user";
public static final String ANSWER_DATE = "date";
public static final String ANSWER_TEXT = "text";
}
package webusr31.pracfinal.model.dao_sql;
import webusr31.pracfinal.model.dao.*;
import java.sql.*;
/**
* Realitzaci� de la factoria 'webprofe.prac3.model.DAOFactory' usant JDBC.
*/
public class SqlDAOFactory extends DAOFactory
{
protected String db_url, db_user, db_password;
public SqlDAOFactory(javax.servlet.ServletContext context)
{
db_url = context.getInitParameter("message_app.db.url");
db_user = context.getInitParameter("message_app.db.user");
db_password = context.getInitParameter("message_app.db.password");
}
protected Connection getDBConnection() throws Exception
{
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
// Try old driver
Class.forName("postgresql.Driver");
}
return DriverManager.getConnection(db_url,db_user,db_password);
}
public UserDAO newUserDAO()
{
return new SqlUserDAO(this);
}
public MessageDAO newMessageDAO()
{
return new SqlMessageDAO(this);
}
public ThemeDAO newThemeDAO()
{
return new SqlThemeDAO(this);
}
public QuestionDAO newQuestionDAO()
{
return new SqlQuestionDAO(this);
}
public AnswerDAO newAnswerDAO()
{
return new SqlAnswerDAO(this);
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<controller>
<action path="/login.do" class="webusr31.pracfinal.controller.LoginCommand">
<transition label="ok" path="/forum.view"/>
<transition label="error1" path="/error_invalid.html"/>
<transition label="error2" path="/error_auten.html"/>
</action>
<action path="/enter.do" class="webusr31.pracfinal.controller.EnterCommand"
transition="/forum.view"/>
<action path="/logout.do" class="webusr31.pracfinal.controller.LogoutCommand"
transition="/index.html"/>
<action path="/admin.do" class="webusr31.pracfinal.controller.AdminCommand">
<transition label="ok" path="/forum.view"/>
<transition label="error1" path="/error_user.html"/>
<transition label="error2" path="/error_leader.html"/>
<transition label="error3" path="/error_theme.html"/>
</action>
<action path="/user.do" class="webusr31.pracfinal.controller.UserCommand">
<transition label="ok" path="/passchange.html"/>
<transition label="error4" path="/passchange_error.html"/>
<transition label="error5" path="/passchange_error2.html"/>
</action>
<action path="/send.do" class="webusr31.pracfinal.controller.SendCommand">
<transition label="ok" path="/mail.view"/>
<transition label="error" path="/error.html"/>
</action>
<action path="/delete.do" class="webusr31.pracfinal.controller.DeleteCommand">
<transition label="ok" path="/mail.view"/>
<transition label="error" path="/error.html"/>
</action>
</controller>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]