Erro de conexão java/mysql

11 respostas
Gneto

Olá meus amigos…não estou conseguindo fabricar conexões, esta ocorrendo o seguinte erro.

Exception in thread “main” com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘???’ at line 1

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class ConnectionFactory {
	
	 public static Connection getConnection() throws SQLException {
	     try {
	         Class.forName("com.mysql.jdbc.Driver");
	         System.out.println("Conectando ao banco");
		      return DriverManager.getConnection("jdbc:mysql://localhost/teste", "root", "");
		     } catch (ClassNotFoundException e) {
		         throw new SQLException(e.getMessage());
		     }
		}
}

import java.sql.Connection;
import java.sql.SQLException;

import ConnectionFactory;

public class TesteConnection{

	public static void main(String[] args) throws SQLException{
		Connection connection = ConnectionFactory.getConnection();
		
		connection.close();
	}
}

:roll: Obrigado.

11 Respostas

thiago.correa

Pelo visto teu SQL está com um erro de sintaxe, imprima o SQL Gerado/Montado :wink:

dudu_sps

poste o codigo… aonde voce está usando a sql

Gneto

Eu tenho essa classe que faz a inserção dos dados.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class jdbcInsere {

	public static void main(String[] args) throws SQLException {
	    
		Connection con = ConnectionFactory.getConnection();
		
		String sql = "insert into contatos (nome,email,endereco) values (?,?,?)";
		PreparedStatement stmt = con.prepareStatement(sql);
		
		stmt.setString(1, "Jose");
		stmt.setString(2, "[email removido]");
		stmt.setString(3, "R. sem nome");
		
		stmt.execute();
		stmt.close();
		System.out.println("Gravado!");
		con.close();
	}
}

A sintaxe SQL esta funcionando normalmente no terminal ja inseri contatos na tabela ja fiz select na tabela ta funcionando normalmente. O que eu não estou entendendo é que nem as conexões eu consigo criar.

create table contatos (
id BIGINT NOT NULL AUTO_INCREMENT,
nome VARCHAR(255),
email VARCHAR(255),
endereco VARCHAR(255),
primary key (id)
);

Lord

Gneto, a sintaxe de conexão está errada falta informar a porta do MySql , tenta assim :

DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","");
LPJava

dar uma olhada, nesse post.

abraco

Gneto

Lord:
Gneto, a sintaxe de conexão está errada falta informar a porta do MySql , tenta assim :

DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","");

Opa ja tentei fazer isso ate alterar a porta e não funciona…não sei mais como posso fazer pra resolver esse problema.

rafa120

coloque o seu main ai pra gente

pq assi nao da pra testar, pode ser la

C
String sql = "insert into contatos (nome,email,endereco) values (?,?,?)";

normalmente vc precisa selecionar o banco de dados por exemplo:

String sql = "insert into meu_banco.contatos (nome,email,endereco) values (?,?,?)";

tudo bem q se fosse isso mesmo deveria aparecer “no database selected” na Exception mas…

Valder_Olmo_Correa

Pessoal, não precisa especificar a porta do banco. A sintaxe está correta, pois aqui em minha máquina é essa a sintaxe e está tudo ok !
Já tive esse problema, mas foi muito difícil resolver.

Comecei a ter esse problema depois que instalei alguns softwares, um deles o Linux, Mandriva 2009 em dual boot com o Windows. Depois disso um membro aqui do fórum me ajudou a resolver o problema, mas teve que mudar a sintaxe que foi diferente.
Resolvi recuperar o sistema de fábrica. Instalei um monte de programas e somente depois resolvi testar as conexões com o MySQL, e deu tudo certo, sem o número da porta.

Então estou achando é que o Linux atrapalhou a conexão com o banco. Estou com medo de instalar o Mandriva 2010.

Bem, creio que algum programa está impedindo o Java de se conectar com o banco.

Gneto

Meu amigo Camilo Lopes…segui os passos do seu post e mesmo assim da a mensagem

“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘???’ at line 1”

Eu removi o banco e instalei novamente, mais não deu certo, instalei uma versão anterior e não deu certo!!! Penso que possa ser algum programa que esta interferindo na conexão e tambem uso o linux em dual boot, como nosso amigo ja disse que teve problemas com isso, penso que tambem estou passando pelo mesmo problema. Estou usando o ubuntu versão 9.10.

Abraços.

barney

Gneto:
Meu amigo Camilo Lopes…segui os passos do seu post e mesmo assim da a mensagem

“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘???’ at line 1”

Eu removi o banco e instalei novamente, mais não deu certo, instalei uma versão anterior e não deu certo!!! Penso que possa ser algum programa que esta interferindo na conexão e tambem uso o linux em dual boot, como nosso amigo ja disse que teve problemas com isso, penso que tambem estou passando pelo mesmo problema. Estou usando o ubuntu versão 9.10.

Abraços.

isso é erro de syntax da sua query provavelmente
poste sua query

Criado 13 de janeiro de 2010
Ultima resposta 15 de jan. de 2010
Respostas 11
Participantes 9