Me da un error de sintaxis en el script de sql, pero al pasarlo por mysql en el xampp , el codigo en sql se ejecuta sin ningun problema.
En elcodigo para conectar con la base de datos , vereis que no hago referencia a ninguna DB.He probado a usar las que viene por defecto y luego ejecutar el script de SQL.
Tambien he quitado espacios y saltos de linea, he visualizado en notepad++ si habia algun caracter extraño dentro de los no visibles.
La verdad no se que pasa.
Pero esto es como el chiste: "Funciona!!!, porque?, no lo se . No funciona!! , porque?, no lo se"
Gracoias de antemano, por tan solo haber abierto el post.
Os pongo el codigo por si veis algun error que mi cerebro esta un poco frito:
Código:
CREATE DATABASE login;
USE login;
CREATE TABLE usuarios(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nombre varchar (100),
apellidos varchar (100),
telefono varchar (40),
nick varchar (10),
password varchar(10),
nivel_acceso ENUM ('admin','user','query'));
MAIN:
Código:
import crear.db.java.Conectar;
public class Main {
public static void main(String[] args) {
Conectar conectarCrear = new Conectar();
conectarCrear.importarQuery("G:\\MICROARTESGE\\PruebasMicroarte\\crearDBdesdejava\\DBlogin.sql");
}
}
CREAR DB desde script en java.
Código:
package crear.db.java;
import java.io.*;
import java.sql.*;
public class Conectar {
private String usuario,contrasena;
private static Connection conexion;
public Conectar(){
conectar();
}
private static void conectar(){
conexion = null;
try {
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver);
conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "");
System.out.println("conectado con mysql");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static String obtenContenidoFichero(File documento){
String sCadena ;
String retorno ="";
if(!documento.exists()){
return null;
}
try{
BufferedReader bf = new BufferedReader(new FileReader(documento));
System.out.println("leyendo script de la base de datos");
while ((sCadena = bf.readLine()) != null) {
retorno += sCadena;
}
}catch(FileNotFoundException fnfe){
return null;
}catch(IOException ioe){
return null;
}
return retorno;
}
public static boolean importarQuery(String scriptSQL){
String query = obtenContenidoFichero(new File(scriptSQL));
System.out.println("importando query");
return ejecutarScript(query);
}
private static boolean ejecutarScript(String query) {
String scriptSQL = query;
try {
PreparedStatement statement = conexion.prepareStatement(scriptSQL);
System.out.println("conexion para la query");
statement.executeLargeUpdate();
System.out.println("query ejecutada");
} catch (SQLException e) {
e.printStackTrace();
}
return true;
}
}
Código:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right
syntax to use near '?CREATE DATABASE login;USE login;CREATE TABLE usuarios(id INTEGER UNSIGNED PRIMA' at line 1