Foros del Web » Programación para mayores de 30 ;) » Java »

Usar lo introducido por teclado para usar una query SQL

Estas en el tema de Usar lo introducido por teclado para usar una query SQL en el foro de Java en Foros del Web. Buenas, el título lo resume un poco mi problema =) Estoy haciendo una aplicación con bases de datos y quisiera poder introducir en la query ...
  #1 (permalink)  
Antiguo 03/10/2011, 10:30
 
Fecha de Ingreso: septiembre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 3
Usar lo introducido por teclado para usar una query SQL

Buenas, el título lo resume un poco mi problema =)

Estoy haciendo una aplicación con bases de datos y quisiera poder introducir en la query la tabla que yo eligiera, este es mi código
Código PHP:
/**
 *
 * @author viclopez
 */
import java.sql.*; 
import java.io.*;
import java.sql.*; 


public class 
CreateTable 
 
Conectarse conc = new Conectarse();
 public 
void Creatable() throws IOException{
  
  
InputStreamReader isr = new InputStreamReader(System.in);
  
BufferedReader br = new BufferedReader(isr);
  
System.out.println("Dame la base de datos a la que quieres cargar la tabla: ");
  
  
String a br.readLine();
         
  
Connection con conc.connect("jdbc:mysql://localhost:3306/" a,"root","concha");
  
System.out.println("El nombre de la base de datos que has dado es: " a);  
  
  
  try { 
    
   
String tabla;
   
BufferedReader tas = new BufferedReader(isr);
   
System.out.println "Dame el nombre de la tabla:" ) ; 
   
String tast tas.readLine();
   
Statement st con.createStatement () ; 
   
//por que lo que meto por teclado no sale??
   
String salida "CREATE TABLE tabla (Type VARCHAR(20))" ;
   
   
st.executeUpdate (salida) ; 
   
System.out.println "La tabla ha sido creada!" ) ; 
   } 
   catch ( 
SQLException s ){
   
System.out.println "La tabla ya existe!" ) ; 
   } 
   
con null;
}

mi problema es que en la linea de
Código PHP:
String salida "CREATE TABLE tabla (Type VARCHAR(20))" 
si pongo
Código PHP:
String salida "CREATE TABLE + tast (Type VARCHAR(20))" 
no me rula...no tengo ni idea por qué, porque debería funcionar, no sé si es por cuestión de comillas o qué se yo :S

Gracias
  #2 (permalink)  
Antiguo 03/10/2011, 10:35
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Usar lo introducido por teclado para usar una query SQL

// Tast es una variable, luego no debe ir dentro del string
String salida = "CREATE TABLE " + tast + " (Type VARCHAR(20))" ;
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 03/10/2011, 10:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 3
Respuesta: Usar lo introducido por teclado para usar una query SQL

Tienes razón, se me piró al copiar el código, pero lo tenía así como tú lo has puesto,
Código PHP:
String salida "CREATE TABLE " tast " (Type VARCHAR(20))" 
pero no me funciona, no crea la tabla ...pero si pones
Código PHP:
String salida "CREATE TABLE tast (Type VARCHAR(20))" 
si que la crea....
no tengo ni idea por qué.
  #4 (permalink)  
Antiguo 03/10/2011, 10:52
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Usar lo introducido por teclado para usar una query SQL

Revisa que el valor que te viene en tast no sea una cadena vacía.

En cuanto a esto: "CREATE TABLE tast (Type VARCHAR(20))" ;
Obviamente crea una tabla de nombre tast (como si tast tuviese valor String "tast") con una columna de varchars.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: mysql, query, sql, teclado, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:55.