From: | Cristian Alejandro Rossel Moraga <cristianrosselm(at)vtr(dot)net> |
---|---|
To: | William Diaz Pabón <wdiaz(at)unipamplona(dot)edu(dot)co> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Error el ejecutar un metodo en java con postgres |
Date: | 2004-11-20 03:52:31 |
Message-ID: | 1100922750.448.88.camel@lautaro.leufu.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Estimado William:
Analizando tu código, te recomiendo que apliques el patrón DAO
(http://java.sun.com/blueprints/patterns/DAO.html) ya que tu código
depende de características específicas de los datos de la capa de
recursos, juntando la lógica de negocios con la lógica de acceso a los
datos, dificultando remplazar o modificar los recursos de los datos de
una o varias aplicaciones. El pattern DAO, separa la lógica del negocio
con la lógica de acceso a los datos (embebidas en el DAO).
El vie, 19-11-2004 a las 18:19, William Diaz Pabón escribió:
> al ejecutar un metodo en java que utiliza un BD en prosgrest me da este
> error:
>
> No value specified for parameter 3
> org.postgresql.util.PSQLException: No value specified for parameter 3
...
>
> este es el código del metodo que tengo:
>
> public Object listarNotasAlumno(String idGrupoMatriculado, ArrayList ob) {
...
StringBuffer ssql = new StringBuffer();
...
Ahora, después de: "for(int it=0;it<listaEvaluaciones.size();it++){",
agrega:
ssql="";
...
> ssql.append(" SELECT distinct a.cacn_id,
> a.cacn_estado, a.cacn_valor ");
> ssql.append(" FROM aulasit.nota c,
> aulasit.calificacioncuantitativa a ");
> ssql.append(" WHERE c.nota_id = ? ");
> ssql.append(" and a.gmvi_id = ? ");
> ssql.append(" and a.nota_id = c.nota_id
> limit 1 ");
...
> this.ps =
> aDefConn.getConnection().prepareStatement(ssql.toString());
> this.ps.setLong(1,
> Long.parseLong(notaVO.getIdNota()));
> this.ps.setLong(2,
> Long.parseLong(idGrupoMatriculado));
Lo del 3 argumento, viene del loop del "for", donde no has hecho una
nueva instanciación o una limpieza de ssql .
Ahora, prefiero usar String a llamar al método append de StringBuffer,
ya que se tiende a quedar con la bala pasada!!!, yo usaría:
...
String sqlQuery;
...
sqlQuery = "select distinct a.cacn_id, a.cacn_estado, a.cacn_valor
+ " from (aulasit.nota c join aulasit.calificacioncuantitativa a on a.nota_id=c.nota_id) "
+ " where c.nota_id = ? and a.gmvi_id = ?";
Cordialmente,
Cristian Rossel Moraga,
Desde Santiago de Chile.
From | Date | Subject | |
---|---|---|---|
Next Message | Cristian Alejandro Rossel Moraga | 2004-11-20 04:08:33 | Re: Problemas con Postgres |
Previous Message | Jaime Casanova | 2004-11-19 21:27:51 | Re: Mejorar consulta con date_part |