JSP (Java Server Page) - Cocatenacion de cadenas y sql

 
Vista:

Cocatenacion de cadenas y sql

Publicado por jose_insomnio (1 intervención) el 06/09/2006 13:26:24
Hola estoy intentando crear una String para usarla como query, pero me da fallos de sintaxis, no se que mas probar, os pongo el codigo aver si veis algo:

String isb="78945-6";
String edit="Alamo";
String auto="PauGasol";
String categor="Baloncesto";
String titul="Canasta3";
String ubica="Porahi";

/////aqui pongo la String problematica, se que es problema de comillas, pero no doy con la tecla
String queryInsert="insert into libros (isbn,editorial,autor,categoria,titulo,ubicacion) values ("+isb+","+edit+","+auto+","+categor+","+titul+","+ubica+")";

///////////esta funciona perfectamente, pero necesito concatenar mas variables
String queryInsert="insert into libros (isbn) values ("+isb+")";

String casque="";
try{
stmt.executeUpdate(queryInsert);

}catch(Exception e){
casque=e.getMessage();


}
%>
Este es el fallo que da tomcat:El casque:Unknown column 'Alamo' in 'field list' , me toma el valor como una columna
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cocatenacion de cadenas y sql

Publicado por Phoenixin (9 intervenciones) el 06/09/2006 17:23:50
No sé que motor de BD estás usando pero está mal hecho ese insert, ya que si las variables son String por lo tanto deberán tener el ' ' a los campos string.
Por ejemplo:
"insert into libros (isbn,editorial) values (" +isb+ "'" +edit+ "');"
Algo así mas o menos, espero te sirva de ayuda ya que yo creo que el error te da por eso sea el motor de BD que uses.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cocatenacion de cadenas y sql

Publicado por neossoftware (70 intervenciones) el 29/09/2006 23:53:30
Lo que estan tratando de hacer es una malisisisma practica de programacion con JDBC lo que deben de usar es un PreparedStatement de la siguiente manera:

public static final String QUERY_BY_KEY =
"SELECT * "
+ "FROM DB2ADUAN.TC_COUNTRY AS COUNTRY "
+ "WHERE COUNTRY.C_COUNTRY_BS_ID = ? ";

/**
* @param key
*/
public Country findCountryByKey(String key) throws SQLSystemException {

conn = buildConnection();

Country country = null;

PreparedStatement stmt;

try {

stmt = conn.prepareStatement(QUERY_BY_KEY);
stmt.setString(1, key);
country = (Country) super.findSingle(stmt);

} catch (SQLException e) {
throw new SQLSystemException(e.getMessage());
} finally {
close(null,null,conn);
}
return country;
}

De esta manera no tiene que concatenar nada solamente colocan ?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar