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

Mysql Query.txt leido y ejecutado por java

Estas en el tema de Mysql Query.txt leido y ejecutado por java en el foro de Java en Foros del Web. Saludos..... Tengo un query para mysql escrito en un txt. similar a este : CREATE TABLE catalogo(id int, concepto varchar(25),unidad vsarchar(25), precio float, PRIMARY KEY(id)) ...
  #1 (permalink)  
Antiguo 10/06/2008, 21:16
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Busqueda Mysql Query.txt leido y ejecutado por java

Saludos.....

Tengo un query para mysql escrito en un txt. similar a este :

CREATE TABLE catalogo(id int, concepto varchar(25),unidad vsarchar(25), precio float, PRIMARY KEY(id))

INSERT INTO catalogo(id, concepto, unidad, precio)VALUES
('1','varilla','Kg','14.6');
('2','Alambron','Kg','15');
('3','Anillos','kg','15.9');
('4','Alambre Recocido','Kg','19.20');
('5','Varilla 6000 5/16','Kg','17.6');

...hasta el concepto n....

Este es mi código con el que quiero jalar todo el query y ejecutarlo..... Ya puedo leer el txt pero no puedo hacer que ese Txt se ejecute como un statement....

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.*;
import java.util.*;
import java.sql.*;



public class Construquer {
public Statement stmt = null;
public ResultSet rs = null;
public Connection conn;
public String sentencia=null;
String termino = new String();
int frecuencia;
static StringTokenizer Tokemon, Tokemon2;
static String palabras;
static double repeticion=0;
int contlineas=0; //Contador de lineas en el txt
int contelementos=1; //contador de campos en la base de datos


public Construquer()
{
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/construquer", "root","");
System.out.println("Conection with Construquer successful");


FileReader fr = new FileReader("ConstruQuery.txt");
BufferedReader br = new BufferedReader(fr);
String line = "";

while( ((line=br.readLine())!=null)
)
{
System.out.println(line);
Tokemon = new StringTokenizer (line);

stmt = conn.createStatement();

while(Tokemon.hasMoreTokens()){
String sql = (line);
stmt.executeUpdate(sql);
}







}

} catch (Exception ex) {ex.printStackTrace(); System.out.println(ex.getMessage());}



}

public static void main(String[] args) {
Construquer iniciador = new Construquer();



}
}

El error es en la sintaxis SQL pero estoy seguro que es la forma en que java lee mis strings porque si el Query lo inserto manualmente linea por linea me lo hace correcto. Es como si java me estuviera agregando unas comillas cada que salta de linea... o algo asi.
  #2 (permalink)  
Antiguo 10/06/2008, 21:44
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Mysql Query.txt leido y ejecutado por java

Hola:

Tendrías que quitar el ; del final y el salto de línea si es que lo está leyendo el readLine().

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 11/06/2008, 00:55
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Sonrisa Respuesta: Mysql Query.txt leido y ejecutado por java



tenias razon :


FileReader fr = new FileReader("ConstruQuery.txt");
BufferedReader br = new BufferedReader(fr);
String line = "";

while( ((line=br.readLine())!=null)
)
{
System.out.println(line);
Tokemon = new StringTokenizer (line);

stmt = conn.createStatement();


String sql = (line);
stmt.executeUpdate(sql);

Pero.... Tuve que cambiar el query a esto:

INSERT INTO catalogo(id,concepto,unidad,precio) VALUES ('1','------',-------','-------');
INSERT INTO catalogo(id,concepto,unidad,precio) VALUES ('2','...........','---','------');
INSERT INTO catalogo(id,concepto,unidad,precio) VALUES ('n',------,'------','-----);

es decir INSERT INTO catalogo(id,concepto,unidad,precio) VALUES
Supongo que tengo que cambiar la parte de :

String sql = (line);

por algo similar a o algo asi......

"INSERT INTO adyacencias values (\""+linea+"\");


Siempre soy bueno
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 14:30.