Neste tutorial será mostrado os passos para criação de formulário em java e conexão com o banco de dados MySQL.
TELA DE LOGIN
Ferramentas
JDK – bibliotecas java para instalação da IDE http://www.oracle.com/technetwork/java/javase/downloads/index.html
Net Beans – IDE para desenvolvimento https://netbeans.org/downloads/
Banco de Dados MySQL – Base de dados
http://dev.mysql.com/downloads/mysql/
MySQL Connectors
http://dev.mysql.com/downloads/connector/
Ferramenta para gerenciamento do banco, criação de tabelas, rotinas, etc..
MySQL Workbench
http://dev.mysql.com/downloads/workbench/
ou
MySQL front http://www.mysqlfront.de/
Após o download e instalação dos aplicativos(não tem segredo, apenas avançar nas telas e confirmar instalação), vamos iniciar pela criação da base de dados e tabela de usuário.
Abrir o MySQL front ou MySQL Workbench e criar o banco de dados (java_testes) e a tabela (adm_usuario) para armazenar os usuários do sistema.
Abaixo a estrutura criada para uso no projeto.
# Structure for table “adm_usuario”
CREATE TABLE `adm_usuario` (
`NR_SEQUENCIA` int(7) NOT NULL AUTO_INCREMENT COMMENT ‘Codigo sequencial unico’,
`DT_CADASTRO` timestamp NOT NULL COMMENT ‘data do cadastro’,
`NM_USUARIO` varchar(110) NOT NULL DEFAULT ” COMMENT ‘Nome do usuário’,
`DS_USUARIO` varchar(25) NOT NULL COMMENT ‘login do usuario’,
`DS_SENHA` varchar(200) NOT NULL COMMENT ‘senha criptografada’,
`DS_EMAIL` varchar(120) NOT NULL COMMENT ‘E-mail do usuário’,
`IE_SITUACAO` enum(‘A’,’I’,’B’) NOT NULL COMMENT ‘indica a situação/status do usuário. A-Ativo, B-Bloquead, I-Inativo’,
PRIMARY KEY (`NR_SEQUENCIA`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
#
# Data for table “adm_usuario”
#
INSERT INTO `java_testes`.`adm_usuario` (`NR_SEQUENCIA`, `DT_CADASTRO`, `NM_USUARIO`, `DS_USUARIO`, `DS_SENHA`, `DS_EMAIL`, `IE_SITUACAO`) VALUES ('1', NOW(), 'Fabiano Bento', 'admin', '123465', 'email@email.com', 'A');
Abrir a IDE de desenvolvimento NetBeans e criar um novo projeto.
Em meu exemplo estou criando com o nome JavaAppTestes
Na sequencia criar um JFRAME, (clique com o botão direito do mouse)
Criando um evento para fechar a janela ao clicar no botão fechar.
Clique com o botão direito do mouse sobre (Cancelar), item eventos e selecione MouseClicked
E digite o comando System.exit(0); , conforme abaixo.
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
System.exit(0);
}
Agora vamos editar a classe principal para fazer a chamada automática do formulário de login em tela, e testar o botão de cancelar.
Classe principal
public class JavaAppTestes {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new formLogin().setVisible(true);
/*Criando uma chamada do formulário*/
}
});
}
}
Pressione F6 para executar o projeto, se tudo ocorreu bem será aberto a tela de login e senha, ao clicar em cancelar a janela será fechada devido o evento criado nas etapas anteriores.
Fiz algumas melhorias no visual da tela de login, disponibilizando alguns dados que em meu conceito são essenciais em grande parte das aplicações, veja com ficou;
- Espaço para logo
- Nome do sistema
- Versão do sistema
- Dados da empresa
- Contato Suporte
Com a parte visual pronta vamos fazer a programação.
Vamos fazer as consistências para criticar o preenchimento dos campos Usuário e Senha.
Primeiro iremos editar os campos de usuário e senha, clicando com o botão direito sobre eles, vá em propriedades e em seguida na aba código. Altere os nomes para form_usuario(JTextField ) e form_senha para o campo de senha(JPasswordField )(imagem abaixo).
form_usuario
form_Senha
Feito os ajustes vamos criar um IF para validar o preenchimento dos campos de usuário e senha (veja abaixo.)
if ((form_usuario.getText().isEmpty()) || (form_senha.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, “Preencha o campo Usuário e Senha”);
}
Teremos o comando IF para verificar se os campos foram preenchidos, e um ELSE para seguirmos com a validação.
Para validar o preenchimento, execute o sistema e clique no botão entrar
Arquivo do projeto até o momento
Javasapptestes-1 (Download)
Atenção: Devido a um falha no blog o restante do artigo não estava aparecendo, mas foi corrigido!
Agora vamos a etapa de configurar a conexão.
É necessário baixar e configurar o MySQL Conector Java https://dev.mysql.com/downloads/connector/j/
https://mvnrepository.com/artifact/mysql/mysql-connector-java
Nas versões mais recentes você pode adicionar a dependência, editando o arquivo pom.XML
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.10</version>
</dependency>
</dependencies>
Crie uma nova classe no projeto com o nome ConexaoBanco
Clique com botão direito do mouse no pacote principal escolha Novo >> Classe Java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class ConexaoBanco {
String urlbanco = “jdbc:mysql://127.0.0.1/java_testes”;
String usuariobanco = “root”;
String senhabanco = “”;
public static void Conectar() {
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
conexao = DriverManager.getConnection(urlbanco, usuariobanco, senhabanco);
stmt = con.createStatement();
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, “Classe não encontrada, verifique o driver/bibliotecas.”);
Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, “Erro na conexão!”,”ERRO”,
JOptionPane.ERROR_MESSAGE, null);
}
}
}
Quando compilar a aplicação caso tenha o ERRO
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’.
The driver is automatically registered via the SPI and manual loading of
the driver class is generally unnecessary.SQLException:
The server time zone value ‘Hora oficial do Brasil’
is unrecognized or represents more than one time zone.
You must configure either the server or JDBC driver
(via the ‘serverTimezone’ configuration property) to use a
more specifc time zone value if you want to utilize time zone support.SQLState: 01S00
Para resolver acesse o link;
http://blog.fabianobento.com.br/2021/06/como-ajustar-o-fuso-horario-ou-timezone-no-mysql/
Gostaria saber como criar um banco de dados no workbench sem antes usar o mysql com o netbeans.
ex: no exercício de criação da tela de login criou-se primeiro a base de dados através do comando SQL e gostaria de saber o contrario porfavor…
No workbench você tem a opção de importar um arquivo .sql
Cade o resto? tem continuação?
Obrigada pelo artigo, me ajudou muito! #Gratidão =)
Fabiano uma vez criado e pronto o projeto eu preciso compilar ou algo do tipo para eu poder abrir no navegador ?
Olá Relder,
Este tutorial é para criar um APP Desktop.
Como eu faria para; ao tentar inserir um novo registro no banco o sistema não permita caso já exista dados cadastrados? Exemplo: estou fazendo um planejamento de aulas e ao tentar cadastrar aquela aula naquela data o sistema permita ou não o cadastro. *o formulário está pronto. o DAO e o model estão prontos. o banco já está pronto e recebendo os dados e etc.
Renato, você precisa validar se o registro já não existe no banco de dados, ou seja, você poderia fazer um select na tabela verificando se já existe a aula cadastrada para a mesma data.
Uma forma de minimizar a tentativa de inclusões pelo usuário, seria já dispor na tela do sistema os registros de aula que já estão cadastrados, e um botão(NOVO), onde a pessoa clicaria para cadastrar as próximas aulas.
Bom dia, Gostaria de saber onde está o resto do projeto.
Devido a um falha no blog o restante do artigo não estava aparecendo, mas foi corrigido!
Eu queria saber como posso fazer para juntar HTML, Java e Mysql.
Html para fazer a interface, Java para fazer a programação e Mysql para o banco de dados. Por favor me ajudem!!!!!!!
Este tutorial é para criar um APP Desktop.
if ((form_usuario.getText().isEmpty()) || (form_senha.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, “Preencha o campo Usuário e Senha”);
}
Esta parte não consegui inserir, daqui em diante não deu mais certo.
Olá Valdir, você vai incluir essa ação de clique no botão ENTRAR.
Olá, meu nome é Marcos, estou atualmente fazendo uma graduação em análise e desenvolvimento de sistemas, e meu mestre pediu uma tarefa onde ele pede que seja feito um formulário de cadastro com a parte que seja feito todos os dados dos alunos no preenchimento desse formulário e os dados pessoais dos professores e funções acadêmicas , tudo isso feito em Java e ligado ao banco de dados e em jframe..mais estou com bastante dificuldade na elaboração, pois não sei muito sobre o desenvolvimento Java..e não encontrei nenhum tutorial de como fazer isso no passo a passo até deixar tudo rodando.. alguém poderia me ajudar ou me auxiliar nesse trabalho?
Marcos, nesta postagem está bem detalhado, tente ir copiando mas estudando para aprender os comandos e lógica aplicada.
Estou encontrando erro ao criar a tabela no MySQL 8. Não sei o por que. Não testei em versões anteriores.
Olá Giovani, qual erro está gerando?