Terceiro artigo da serie DevOps, continuacao do livro Docker que pode ser acessado atraves do site Academia.edu.Entre todas as linguagens que um desenvolvedor possa utilizar, pelo menos um banco de dados e comum a todas elas: MySQL. Utilize PHP, C, Java, Python (talvez nao .NET que o pessoal e meio paranoico com Microsoft), ou qualquer outra linguagem o banco de testes sera um MySQL.Entao neste artigo veremos como utilizar o MySQL com o Docker (essa mesma tecnica pode ser aplicada para o MariaDB ou Postgres - respeitando obviamente a porta deste ultimo). Sao apenas 3 passos a realizar:1o) Baixar imagem oficial:$ docker pull mysql2o) Rodar o conteiner:$ docker run --name mybanco -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql3o) Chamar o administrativo do banco:$ docker exec -it mybanco mysql -pObviamente que nao iremos parar por aqui pois nao teria a menor graca. Vamos acessar o banco atraves de um programa Java, ainda com o administrativo aberto crie uma base de dados com o seguinte comando:> create database teste;> use teste;> show tables;Agora precisamos de um editor para o Java, para meus testes sempre utilizo o BlueJ e o Conector JDBC do MySQL deve ser disponibilizado, para proceder isso:Baixar o conector JDBC do MySQL no driver oficial ou atraves desse link.Acessar no menu principal "Tools | Preferences".Ir para a pasta "Libraries".Pressionar o botao "Add" e localizar o conector baixado.Uma vez adicionado sair e entrar novamente no BlueJ para ativar a biblioteca. Agora e so criar o programa para testar a conexao (atraves do botao "New Class..."):import java.sql.*;import java.text.SimpleDateFormat;public class Conexao { private Connection con; public static void main(String [] args) { new Conexao().executar(); } public void executar() { try { criar(); selecionar(); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } catch (SQLException e) { System.out.println(e.getMessage()); } } private void conexao() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/teste", "root", "root"); } private void criar() throws ClassNotFoundException, SQLException { conexao(); // Criar a tabela Statement stm = con.createStatement(); stm.executeUpdate( "CREATE TABLE funcionario (" + " matricula INT NOT NULL, " + " nome VARCHAR(50)," + " PRIMARY KEY (matricula))"); stm.close(); // Adicionar 100 funcionarios PreparedStatement pstm = con.prepareStatement( "INSERT INTO funcionario (matricula, nome) VALUES (?, ?)"); int tot = 0; for (int i = 0; i < 100; i++) { pstm.setInt(1, i); pstm.setString(2, "Funcionario " + i); tot += pstm.executeUpdate(); } System.out.println("Inseridos : " + tot); pstm.close(); con.close(); } private void selecionar() throws ClassNotFoundException, SQLException { SimpleDateFormat fdt = new SimpleDateFormat("hh:mm:ss:SSSS"); conexao(); // Varrer todos os dados Statement stm = con.createStatement(); ResultSet res = stm.executeQuery( "SELECT nome, matricula FROM funcionario"); int x = 0; String nome = null; int matricula; System.out.println("Tempo Inicial: " + fdt.format(new java.util.Date())); while (res.next()) { nome = res.getString(1); matricula = res.getInt(2); x += 1; } System.out.println("Tempo Final: " + fdt.format(new java.util.Date())); System.out.println("O ultimo que li foi " + nome); System.out.println("Total de " + x); }}Na primeira parte deste programa sera criada uma tabela na base teste e populada com 100 registros de funcionario, na segunda parte e realizada uma consulta para verificar a existencia dos registros e o tempo de performance de