Tenho uma aplicação Java que não consegue efetuar manutenções em um banco de dados MySQL. Consigo efetuar a conexão e ler qualquer tabela, porém, não consigo efetuar nenhum comando de atualização como: INSERT, DELETE, CREATE, etc. Recebo sempre o mesmo erro SQLState: S1009. O que devo fazer ? As aplicações Java não estão livres dos procedimentos de segurança ?[/b]
Ola,
Não, as aplicações (JAVA ou não) NÃO estão livres das restrições de segurança.
Embora eu não possa dizer pelo código do erro é muito provável mesmo que você não tenha permissões de DDL.
Confira o usuário que você está usando para conectar.
[]s
[quote]Agradeço seu retorno
Já utilizei todos os usuários cadastrados (inclusive ROOT). Eles possuem todos os privilegios de acesso (GRANT ALL PRIVILEGES).
Como foi escrito no quadro anterior, eu consigo conexão e executar o comando SELECT, se houvesse algum problema de DLL ou conexão, eu não conseguiria efetuar essas etapas.
Toda vez que tento efetuar algum comando que altere alguma tabela como: INSERT, DELETE, etc; eu recebo um erro do tipo:
[color=“red”]SQLState: S1009 Can not issue data manipulation statements with executequery() [/color]
Não sei qual é o segredo do JAVA ou MySQL que permite efetuar essa tarefa ? Será que é algo que devo setar ? Não tenho ideía …[/quote]
Ola,
Agora com sua msg (enviada em private e citada acima) ficou mais fácil.
O comando executequery é apenas para DML (Data Manipulation) e não comandos DDL (é DDL mesmo, não DLL … DDL de Data Definition) … bem, é de se esperar pq DDL não são QUERYs …
Procure na documentação, provavelmente será apenas execute mas confira …
[]s
Você pode usar os métodos execute, ou executeUpdate, das classes Statement’s.
:lol:
Solução
Utilizei um outro DRIVE de acesso e a opção “executeQuery” funciona.
Contudo, retornei o DRIVE anterior e utilizei “executeUpdate” conforme sugerido, e a solicitação (INSERT, DELETE, etc) funcionou.
Obrigado a Todos