Java - Banco de Dados

Olá, estou aprendendo banco de dados através de vídeo-aulas que não ensinam pra que serve cada método, por isso quero a ajuda de vocês!

1 - Qual a função do Hibernate.cfg.xml e Hibernate.reveng.xml?
2 - Porque eu preciso criar uma constante do tipo String para o DRIVER, URL, USER e PASS?
3 - Nessa linha:

public Connection getConnection()     { 
           try {
               Class.forName(DRIVER);
               return DriverManager.getConnection(URL, USER, PASS);
                               } 
          catch (ClassNotFoundException | SQLException ex) {
           throw new RuntimeException ("erro na conexão") ; 
             }
}
  • De onde vem esse DriverManager?
  • Qual a função de: ClassNotFoundException e SQLException ex

Boa tarde, Matheus3!

DriverManager vem da importação feita pela biblioteca de conexão do Mysql.

"ClassNotFoundException | SQLException ex"
São responsáveis por capturar exceções especificas relacionadas ao mysql. Por exemplo, caso você coloque apenas “Exception ex” ele informará que há um erro na linha x do seu código. Com as exceções “ClassNotFoundException | SQLException ex” , ele vai capturar o erro e te passar. Por exemplo "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.
";

Att,