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]

Reply via email to