Java com Banco de Dados MySQL - #02 - Criando ConnectionFactory

Поделиться
HTML-код
  • Опубликовано: 14 дек 2024

Комментарии • 88

  • @eduardod3m
    @eduardod3m 7 лет назад +10

    Meu , é incrível a qualidade dessas vídeo Aulas , esta de parabéns, me ajudou muito .

    • @Descompila
      @Descompila  7 лет назад +3

      Obrigado Eduardo!
      Continue acompanhando, em breve terá JavaFX.

  • @betocarvaJR
    @betocarvaJR 5 лет назад +8

    Com 3 vídeos de 10 minutos cada aprendi mais do que 1 semestre inteiro 😂😂😂😂😂.

  • @Joni67sinix
    @Joni67sinix 5 лет назад

    cara, meus parabesn!! uma das melhores aulas q eu ja vi. ganhou um inscrito!

  • @jonathanmoraes1252
    @jonathanmoraes1252 7 лет назад +3

    Olá amigo gostei muito da sua aula, estou com um problema nessa parte: finally {
    ConnectionFactory.closeConnection(con, stmt); diz que ConnectionFactory cannot be converted to Connection.

  • @jeffassis8361
    @jeffassis8361 9 лет назад

    Eu não fazia com esse padrão a class ConnectionFactory muito boa sua didatica!

  • @raphaelsouza5573
    @raphaelsouza5573 8 лет назад

    Parabéns Samuelson Brito, ótimas aulas já sou inscrito do seu canal!

    • @raphaelsouza5573
      @raphaelsouza5573 8 лет назад

      tenho muito interesse em raspberry pi e IOT, se você puder fazer alguma video aula voltada para esses assuntos eu gostaria muito. obrigado

  • @pressstart.multiverse
    @pressstart.multiverse Год назад

    Cara show de bola, agora o que cada sobrecarga faz especificamente, pq a pessoa fica sem saber a diferença entre cada uma delas, é como se fosse tudo igual mesmo sem ser.

  • @pipocket
    @pipocket 8 лет назад

    Cara excelente, parabéns, muito boa suas aulas

  • @brunosa5280
    @brunosa5280 4 года назад

    Amigo se tiver ai ainda, me tira uma duvida... Pra utilizar o mysql workbench com o 8.1 nos dias de hoje, precisa ser a versao antiga do mysql ou pode ser a atual???

  • @mbs2488
    @mbs2488 4 года назад

    Excelente, muito bem explicado. Parabéns !!!

  • @eduardoteixeira1028
    @eduardoteixeira1028 2 года назад

    Meu irmão, estou seguindo a série toda e construindo meu TCC em base desse material excelente! Realmente as aulas são top! Só esbarrei na conexão com o banco, poderia me dar uma ajuda para identificar o que ficou diferente?

    • @Descompila
      @Descompila  2 года назад

      Me chama no email samuelsonma@gmail.com

  • @marcosxloco
    @marcosxloco 7 лет назад +3

    voce tem alguma aula ensinando a criar o banco de dados que vc usou nesse video? se tiver me passe por favor

    • @Descompila
      @Descompila  7 лет назад +2

      Infelizmente não, mas farei.

    • @carloskombo2967
      @carloskombo2967 7 лет назад +2

      É exatamente essa aula que eu tanto quero,porfavor poh!!
      É urgenteee!!

    • @JoseNeto-kk3ef
      @JoseNeto-kk3ef 6 лет назад

      create table cadastros(
      id int auto_increment,
      descricao varchar(100),
      quantidade int,
      preco double,
      primary key(id)
      )default charset utf8;

  • @isaiasferreira7753
    @isaiasferreira7753 6 лет назад

    Show o vídeo parceiro, parabéns pelo profissionalismo. Abraço.

  • @1rrv1
    @1rrv1 7 лет назад +2

    Olá, Samuel. Gostei muito da aula. Eu tive um erro ao executar o programa. Copiei exatamente como você escreveu. A minha versão da IDE do NetBeans é a 8.2, verifiquei e nela já consta o Driver JDBC. O problema me parece estar nesta linha: "return DriverManager.getConnection(URL, USER, PASS);". O erro que está dando é: Exception in thread "main" java.lang.RuntimeException: Erro na conexao:
    at conection.ConnectionFactory.getConnection(ConnectionFactory.java:28)
    at model.dao.ProdutoDao.create(ProdutoDao.java:20)
    at testebanco.TesteBanco.main(TesteBanco.java:33)
    Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/loja
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at conection.ConnectionFactory.getConnection(ConnectionFactory.java:25)
    ... 2 more
    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
    Aqui abaixo tá o código da classe Connection
    package conection;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    public class ConnectionFactory {
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql//127.0.0.1:3306/loja";
    private static final String USER = "root";
    private static final String PASS = "";
    public static Connection getConnection(){
    try {
    Class.forName(DRIVER);
    return DriverManager.getConnection(URL, USER, PASS);
    }
    catch (SQLException | ClassNotFoundException ex) {
    throw new RuntimeException(" Erro na conexao: ",ex);
    }
    }
    public static void closeConnection(Connection con){
    try {
    if(con!=null){
    con.close();
    }
    } catch (SQLException ex) {
    Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    public static void closeConnection(Connection con, PreparedStatement stmt){
    closeConnection(con);
    try {
    if(stmt!=null){
    stmt.close();
    }
    } catch (SQLException ex) {
    Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    public static void closeConnection(Connection con, PreparedStatement stmt, ResultSet rs){
    closeConnection(con, stmt);
    try {
    if(rs!=null){
    rs.close();
    }
    } catch (SQLException ex) {
    Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    }

    • @Descompila
      @Descompila  7 лет назад

      A linha da URL está incorreta, verifica ai Rafael. O correto seria assim:
      private static final String URL = "jdbc:mysql://localhost:3306/loja";

    • @1rrv1
      @1rrv1 7 лет назад

      Eu tinha posto com 3306 antes, mas vi em outro vídeo sem. Coloque novamente e olha o erro:
      Exception in thread "main" java.lang.RuntimeException: Erro na conexao:
      at connection.ConnectionFactory.getConnection(ConnectionFactory.java:30)
      at model.dao.ProdutoDao.create(ProdutoDao.java:20)
      at testebanco.TesteBanco.main(TesteBanco.java:33)
      Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
      The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
      at com.mysql.jdbc.MysqlIO.(MysqlIO.java:355)
      at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2461)
      at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
      at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
      at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:822)
      at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
      at java.sql.DriverManager.getConnection(DriverManager.java:664)
      at java.sql.DriverManager.getConnection(DriverManager.java:247)
      at connection.ConnectionFactory.getConnection(ConnectionFactory.java:26)
      ... 2 more
      Caused by: java.net.ConnectException: Connection refused: connect
      at java.net.DualStackPlainSocketImpl.connect0(Native Method)
      at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
      at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
      at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
      at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
      at java.net.Socket.connect(Socket.java:589)
      at java.net.Socket.connect(Socket.java:538)
      at java.net.Socket.(Socket.java:434)
      at java.net.Socket.(Socket.java:244)
      at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
      at com.mysql.jdbc.MysqlIO.(MysqlIO.java:305)
      ... 17 more

    • @1rrv1
      @1rrv1 7 лет назад

      Eu consegui resolver esse erro. Mas, eu só consigo me conectar ao banco de dados se o WampServer estiver ativado. Até mesmo para eu usar o MySQL eu tenho que ativá-lo, senão não são mostradas meus bancos, parece como se eu estivesse off do banco. O que devo fazer para usar o MySQL sem esse programa??

    • @simplesmesmo7069
      @simplesmesmo7069 3 года назад

      private static final String DRIVER = "com.mysql.cj.jdbc.Driver";

  • @EnryNabazio
    @EnryNabazio 8 лет назад

    estou com erro no trecho do getConnection - "return DriverManager.getConnection(URL, USER, PASS);" -> 5:33 min
    onde ele não encontra as variáveis URL, USER e PASS, e reconhece as 3 variáveis apenas com DRIVER, já conferi diversas vezes e fiz passo a passo junto com o vídeo mas não consigo resolver :(
    o texto sublinado é: "incompatible types: java.sql.Connection cannot be converted to com.mysqljdbc.Connection"
    mesmo corrigindo os try catchs e etc, no final da sequencia desse vídeo, eu não consigo exibir os dados cadastrados ...

    • @EnryNabazio
      @EnryNabazio 8 лет назад

      te enviei um email caso possa conversar...

  • @animeplay6614
    @animeplay6614 5 лет назад

    essas sobrecargas nao tem problema de usar o mesmo nome closeConnection ??

  • @LucasRibeiro-zl1ss
    @LucasRibeiro-zl1ss 8 лет назад

    schema seria o localhost a porta de conexao?

  • @Academiaimperial1
    @Academiaimperial1 6 месяцев назад

    meu Netbeans está em inglês, eu gostaria de saber onde e como é que eu adiciono o drive do mysql conector

    • @Descompila
      @Descompila  5 месяцев назад

      Opa, vou fazer uma atualização dessa série de vídeo em breve.

  • @tiagosaidelles7104
    @tiagosaidelles7104 7 лет назад +2

    Ola amigo show seu videos só preciso da aula de como vc criou o banco de dados preciso desta aula se for possível vai me ajudar muito

    • @Descompila
      @Descompila  7 лет назад

      Sim, estava pensando nisso, irei fazer. Mas se estiver com dificuldade na criação entra em contato em meu e-mail samuelson@descompila.com.br

    • @JoseNeto-kk3ef
      @JoseNeto-kk3ef 6 лет назад

      create table cadastros(
      id int not null auto_increment,
      descricao varchar(100),
      quantidade int,
      preco double,
      primary key(id)
      )default charset utf8;

  • @lacordairelopes8558
    @lacordairelopes8558 6 лет назад

    Eu desenvolvi um sistema que possui recursos de cadastros e buscas no banco de dados baseado em sua suas duas play-list de Interface gráfica com java e Java com Banco de dados Mysql. Porem , quando eu fui porlo em pratica em u m cenário real precisei utilizar o MariaDB no Lugar do MySQL. Neste caso como eu devo fazer a conexao com o MariaDB? Obs: meu códigó é muito semelhante ao o que você utiliza nas videoaulas.

  • @lacordairelopes8558
    @lacordairelopes8558 5 лет назад

    Muda algumas coisas com o novo MySQL 8.0 não é ?

  • @lorddrumond3937
    @lorddrumond3937 6 лет назад

    seria bom eu colocar um finally com connection = null; ? Ou seria desnecessário?

  • @cristianomendoncagueivara5702
    @cristianomendoncagueivara5702 8 лет назад +2

    Muito bom o vídeo!! O que você indica para aprendizado para desenvolvimento para android?

    • @Descompila
      @Descompila  8 лет назад

      O livro: Dominando Android, é excelente.

  • @rafaelferreira2110
    @rafaelferreira2110 6 лет назад +1

    É POSSÍVEL ALTERAR PARA UM BANCO DE DADOS ORIENTADO A DOCUMENTO? NO CASO SERIA O MONGODB.

  • @HCotta
    @HCotta 8 лет назад

    Se eu n estou enganado quando vc fecha o CON na segunda closeConec.. vc tbm ja fecha o STMT?? vc n deveria te fechado primeiro o STMT?

    • @HCotta
      @HCotta 8 лет назад

      Falei isso por que tive um erro depois que fiz os passos da sua video aula, tive um GRAVE : Null , que apontava para o stmt.

  • @alanramiresbr
    @alanramiresbr 7 лет назад

    e quando retorna "unknown server hostname" ? o app está em uma maquina e o banco em outra e esse banco ainda é uma instância pq tem q por virgula na string do hostname.

    • @Descompila
      @Descompila  7 лет назад

      Alan, colocou o ip da máquina onde está o banco de dados, na conexão?

    • @alanramiresbr
      @alanramiresbr 7 лет назад

      parece q é alguma coisa com os pacotes de instalação, mas enfim, vlw

  • @serginhoprocol2595
    @serginhoprocol2595 8 лет назад

    Eu tive que fazer isso na classe ProdutoDAO no metodo create finally ConnectionFactory.closeConnection((com.mysql.jdbc.Connection) con, stmt);

  • @jessealves1553
    @jessealves1553 7 лет назад

    boa noite como faço para criar um programa para consulta de txt pelo numero de ordem de serviço , ja tenho um banco com varios arquivos txt , pode me orientar?

    • @Descompila
      @Descompila  7 лет назад +1

      Você está usando o txt como uma especie de banco de dados?

  • @SergioPalmiere
    @SergioPalmiere 7 лет назад +3

    Maravilhosos teus videos, parabêns. seus vídeos são melhores dos que os vendidos na Udemy. Cara só uma dúvida, quando faça o overload do closeConnectio para o PreparedStatement e o ResultSet como você faz no video o meu netbeans fica todo vermelho e aparece uma mensagem dizendo Class, interface or Enum expected. Você saberia me dizer como posso corrigir este erro? Grato mais uma vez e ganhou mais um inscrito.

    • @Descompila
      @Descompila  7 лет назад

      Obrigado. Manda seu código para samuelson@descompila.com.br para eu verificar.

  • @cristianoalves8824
    @cristianoalves8824 6 лет назад

    brother ta dando um erro, simplesmente a parte ConnectionFactory.class.getName fica selecionada vermelha e diz que uma String não pode ser transformada em classe.

    • @Descompila
      @Descompila  6 лет назад +1

      Está fazendo algo de errado no seu código. Refaça novamente ou consulte nosso repositório github.com/descompila.

    • @cristianoalves8824
      @cristianoalves8824 6 лет назад

      Descompila

  • @istefferson
    @istefferson 7 лет назад +2

    Muito obrigado!! Ta me ajudando muito!!

  • @Leticia2234
    @Leticia2234 8 лет назад +1

    Parabéns pelo canal, mas o meu ta dando erro. poderia disponibilizar o código?

    • @Leticia2234
      @Leticia2234 8 лет назад

      +Samuelson Brito muito obrigada. estarei enviando agora.

    • @serginhoprocol2595
      @serginhoprocol2595 8 лет назад

      package model;
      import connection.ConnectionFactory;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      import java.util.logging.Level;
      import java.util.logging.Logger;
      import javax.swing.JOptionPane;
      import model.bean.Produto;
      public class ProdutoDAO {
      public void create(Produto p) {
      Connection con = ConnectionFactory.getConnection();
      PreparedStatement stmt = null;
      try {
      stmt = con.prepareStatement("INSERT INTO produto (descricao,qtd,preco)VALUES(?,?,?)");
      stmt.setString(1, p.getDescricao());
      stmt.setInt(2, p.getQtd());
      stmt.setDouble(3, p.getPreco());
      stmt.executeUpdate();
      JOptionPane.showMessageDialog(null, "Salvo com sucesso!");
      } catch (SQLException ex) {
      JOptionPane.showMessageDialog(null, "Error al guardar: " + ex);
      } finally {
      ConnectionFactory.closeConnection((com.mysql.jdbc.Connection) con, stmt);
      }
      }
      }

  • @lucasnt6633
    @lucasnt6633 8 лет назад

    BOA aula!! ganhou mais um escrito.

  • @amaralacustico
    @amaralacustico 8 лет назад

    Tem esses códigos em algum site.
    Eu estou tentando achar algo parecido com seu vídeo, na verdade preciso fazer isso:
    Criar um componente que possa fazer conexões com diversos bancos de dados, usando diversos conectores JDBC e aplicando os padrões (patterns) de projeto Syngleton e FactoryMethod.
    Descrição: O componente deve em tempo de execução (runtime), identificar qual SGBD é utilizado pela aplicação e criar uma única instância de conexão usando o driver apropriado. O output da execução do componente deve ser:
    • Conexão efetuada com sucesso
    • Driver utilizado: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (nome do driver utilizado)
    • Banco de dados: xxxxxxxxxxxxxx (nome do SGBD)
    Por favor, pode me ajudar, alguns vídeo que tenha , site....?

  • @LucasRibeiro-zl1ss
    @LucasRibeiro-zl1ss 8 лет назад

    Qual seria o erro na parte com.mysql que aparece para mim?
    package connectionDB;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class ConnectionFactory {
    public Connection getConnection() {
    System.out.println("Conectando...");
    try {
    DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // Driver onde carrega a conexão com o banco
    return DriverManager.getConnection( // p obter conexão retornar conexão
    "jdbc:mysql://localhost:3306/sunsetti", "root", "root"); // endereço da conexão
    } catch (SQLException e) {
    System.out.println("Erro ao conectar");
    throw new RuntimeException(e);
    }
    }
    }

    • @LucasRibeiro-zl1ss
      @LucasRibeiro-zl1ss 8 лет назад

      +Samuelson Brito e que esse e o jeito q meu professor passou

    • @simplesmesmo7069
      @simplesmesmo7069 3 года назад

      private static final String DRIVER = "com.mysql.cj.jdbc.Driver";

  • @lacordairelopes8558
    @lacordairelopes8558 6 лет назад

    Parabéns Muito bom seu canal!

  • @pedrodev99
    @pedrodev99 7 лет назад

    mano! ótimo vídeo! você aprendeu isso em livros ? vc indica um livro ? valeu!

  • @jeanfelipe3460
    @jeanfelipe3460 2 года назад

    MAN ainde que localizo a url

  • @iflastmangamer1295
    @iflastmangamer1295 7 лет назад

    Esta dando um erro quanado eu faco con.close(), diz que metoddo close() has not been created

    • @Descompila
      @Descompila  7 лет назад

      Coloca o código da sua conexão aqui paste2.org/ para eu dar uma olhada.

    • @ilidioijip3762
      @ilidioijip3762 5 лет назад

      resolveu o problema??? que acabei achando o mesmo

  • @anonimodark6755
    @anonimodark6755 5 лет назад

    Melhor canal de todos ❤️❤️

  • @edercarlos5940
    @edercarlos5940 5 лет назад

    Obrigado amigo ajudou muito aqui

    • @Descompila
      @Descompila  5 лет назад

      De nada Eder. Bons estudos!

  • @serginhoprocol2595
    @serginhoprocol2595 8 лет назад

    package model;
    import connection.ConnectionFactory;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JOptionPane;
    import model.bean.Produto;
    public class ProdutoDAO {
    public void create(Produto p) {
    Connection con = ConnectionFactory.getConnection();
    PreparedStatement stmt = null;
    try {
    stmt = con.prepareStatement("INSERT INTO produto (descricao,qtd,preco)VALUES(?,?,?)");
    stmt.setString(1, p.getDescricao());
    stmt.setInt(2, p.getQtd());
    stmt.setDouble(3, p.getPreco());
    stmt.executeUpdate();
    JOptionPane.showMessageDialog(null, "Salvo com sucesso!");
    } catch (SQLException ex) {
    JOptionPane.showMessageDialog(null, "Error al guardar: " + ex);
    } finally {
    ConnectionFactory.closeConnection((com.mysql.jdbc.Connection) con, stmt);
    }
    }
    }

  • @litt_000
    @litt_000 4 года назад

    1:25 aff vc é bolsominion

  • @leolima8585
    @leolima8585 5 лет назад

    Aula bagunçada