Poste o código (e correlatos) onde a exceção foi lançada para avaliarmos. De qualquer forma, já existe um post aqui no fórum tratando do assunto. Sugiro que dê uma espiada por aqui: Não consigo conectar o Java ao MySQL.
publicCargosInserir(){criarComponentes();criarEventos();}privatevoidcriarComponentes(){setLayout(null);labelTitulo=newJLabel("Cadastro de cargo"+JLabel.CENTER);labelTitulo.setFont(newFont(labelTitulo.getFont().getName(),Font.PLAIN,20));labelCargo=newJLabel("Nome do cargo"+JLabel.LEFT);campoCargo=newJTextField();botaoGravar=newJButton("Adicionar Cargo");labelTitulo.setBounds(20,20,660,40);labelCargo.setBounds(150,120,400,20);campoCargo.setBounds(150,140,400,40);botaoGravar.setBounds(250,380,200,40);add(labelTitulo);add(labelCargo);add(campoCargo);add(botaoGravar);setVisible(true);}privatevoidcriarEventos(){botaoGravar.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEventae){CargosnovoCargo=newCargos();novoCargo.setNome(campoCargo.getText());sqlInserirCargo(novoCargo);}});}privatevoidsqlInserirCargo(CargosnovoCargo){if(campoCargo.getText().length()<=3){JOptionPane.showMessageDialog(null,"Por favor, preencha o nome corretamente!");}Connectionconexao;StatementinstrucaoSQL;ResultSetresultados;try{conexao=DriverManager.getConnection(BancoDeDados.URL,BancoDeDados.USER,BancoDeDados.PASS);instrucaoSQL=conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);instrucaoSQL.executeUpdate("insert into cargos (nome) values ('"+novoCargo.getNome()+"');");JOptionPane.showMessageDialog(null,"Cargo adicionado com sucesso!");}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"Ocorreu um erro ao adicionar o Cargo.");Logger.getLogger(CargosInserir.class.getName()).log(Level.SEVERE,null,ex);}}
retorno na saída:
run:
mai 23, 2020 10:39:00 PM sistema.telas.CargosInserir sqlInserirCargo
GRAVE: null
java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.
I
Iohannes
Está usando o MySQL 8? Qual o driver? Instalou o conector correto?
G
gleydsond
Isso MySQL Workbench 8.0.
Driver é o próprio do MySQL baixado pela biblioteca.
se é o correto do Mysql 8 não sei.
java 5.1.23-bin;
I
Iohannes
O conector java do JDBC, qual está usando? Tem indicar o jar na IDE. o Conector do MySQL 8 é esse: mysql-connector-java-8.0.20. O driver deverá ser esse: com.mysql.cj.jdbc.Driver
G
gleydsond
mysql - connector - java - 5.1.23-bin… esse esta no driver junto da biblioteca!
I
Iohannes
Esse é do MySQL 5. Exemplo:
publicclassConectaBancoDeDados{privatestaticfinalStringDRIVER="com.mysql.cj.jdbc.Driver";privatestaticfinalStringURL="jdbc:mysql://localhost/"+"DataBase?useTimezone=true&serverTimezone=UTC";privatestaticfinalStringUSUARIO="user";privatestaticfinalStringSENHA="password";publicstaticConnectiongetConexao()throwsSQLException{try{Class.forName(DRIVER);returnDriverManager.getConnection(URL,USUARIO,SENHA);}catch(ClassNotFoundExceptioncnfe){thrownewSQLDataException(cnfe.getMessage());}}publicstaticvoidmain(String[]args){try{getConexao();System.out.println("Banco de dados conectado com sucesso!");}catch(SQLExceptionsqle){System.out.println("Impossível se conectar ao banco de dados. "+"ERRO: "+sqle.getMessage());}}}
No NetBeans, por exemplo:
G
gleydsond
Ixi… então se trocar resolve o problema?
G
gleydsond
Obrigado vou testar hoje subistiruindo pelo for…name tbm!
G
gleydsond
Deu certo era esse detalhe : ?useTimezone=true&serverTimezone=UTC"