Skip to content

Commit

Permalink
Exercicio testado e finalizado
Browse files Browse the repository at this point in the history
  • Loading branch information
megalemarcelo committed May 27, 2022
1 parent 851f8e1 commit 9aaf7e8
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 89 deletions.
23 changes: 11 additions & 12 deletions ConnectionFactory.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
import java.sql.DriverManager;
import java.sql.Connection;

public class ConnectionFactory {
private static String host = "localhost";
private static String port = "3306";
private static String db = "20221_fatec_ipi_poo_pessoas";
private static String user = "root";
private static String password = "1234";
private static String password = "12345678";

public static Connection getConnection() throws Exception{
public static Connection getConnection() throws Exception {
return DriverManager.getConnection(
String.format(
"jdbc:mysql://%s:%s/%s?useTimezone=true&serverTimezone=UTC",
host,
port,
db
),
user,
password
);
String.format(
"jdbc:mysql://%s:%s/%s?useTimezone=true&serverTimezone=UTC",
host,
port,
db),
user,
password);
}
}
}
132 changes: 75 additions & 57 deletions Pessoa.java
Original file line number Diff line number Diff line change
@@ -1,110 +1,127 @@
import java.sql.Connection;
import java.sql.PreparedStatement;

import com.mysql.cj.x.protobuf.MysqlxPrepare.Prepare;

public class Pessoa {
private int codigo;
private String nome;
private String fone;
private String email;

//mapeamento objeto relacional
//ORM: Hibernate, EclipseLink
public void inserir() throws Exception{
//1. Definir o comando SQL
// mapeamento objeto relacional
// ORM: Hibernate, EclipseLink
public void inserir() throws Exception {
// 1. Definir o comando SQL
String sql = "INSERT INTO tb_pessoa (nome, fone, email) VALUES (?, ?, ?)";
//2. Abrir uma conexão com o MySQL Server
ConnectionFactory factory = new ConnectionFactory();
Connection conexao = factory.getConnection();
//3. Preparar o comando (solicitar ao MySQL Server que compile o comando SQL previamente)
Connection conexao = ConnectionFactory.getConnection();
// 3. Preparar o comando (solicitar ao MySQL Server que compile o comando SQL
// previamente)
PreparedStatement ps = conexao.prepareStatement(sql);
//4. Substituir os eventuais placeholders
// 4. Substituir os eventuais placeholders
ps.setString(1, nome);
ps.setString(2, fone);
ps.setString(3, email);
//5. Executar o comando
// 5. Executar o comando
ps.execute();
//6. Fechar os recursos (conexão e o comando preparado)
// 6. Fechar os recursos (conexão e o comando preparado)
ps.close();
conexao.close();
}

public void atualizar() throws Exception{
//1. Especificar o comando SQL (UPDATE)
public void atualizar() throws Exception {
// 1. Especificar o comando SQL (UPDATE)
String sql = "UPDATE tb_pessoa SET nome = ?, fone = ?, email = ? WHERE cod_pessoa = ?";
//2. Abrir uma conexão com o MySQL Server
ConnectionFactory factory = new ConnectionFactory();
//try-with-resources (desde a versão 7 do Java SE)
try(Connection conexao = factory.getConnection();
//3. Preparar o comando
PreparedStatement ps = conexao.prepareStatement(sql)){
//4. Substituir os placeholders
// try-with-resources (desde a versão 7 do Java SE)
try (Connection conexao = ConnectionFactory.getConnection();
// 3. Preparar o comando
PreparedStatement ps = conexao.prepareStatement(sql)) {
// 4. Substituir os placeholders
ps.setString(1, nome);
ps.setString(2, fone);
ps.setString(3, email);
ps.setInt(4, codigo);
//5. Executar o comando
// 5. Executar o comando
ps.execute();
//6. Fechar os recursos: já está feito pelo try-with-resources
// 6. Fechar os recursos: já está feito pelo try-with-resources
}
}

public void apagar() throws Exception{
//1. Especificar o comando SQL (DELETE por código)
public void apagar() throws Exception {
// 1. Especificar o comando SQL (DELETE por código)
String sql = "DELETE FROM tb_pessoa WHERE cod_pessoa = ?";
//2. Abrir uma conexão com o MySQL Server (Usando try-with-resources do Java 7)
try(
Connection conexao = new ConnectionFactory().getConnection();
//3. Preparar o comando
PreparedStatement ps = conexao.prepareStatement(sql);
){
//4. Substituir os placeholders
new ConnectionFactory();
// 2. Abrir uma conexão com o MySQL Server (Usando try-with-resources do Java 7)
try (
Connection conexao = ConnectionFactory.getConnection();
// 3. Preparar o comando
PreparedStatement ps = conexao.prepareStatement(sql);) {
// 4. Substituir os placeholders
ps.setInt(1, codigo);
//5. Executar o comando
// 5. Executar o comando
ps.execute();
}
}

public static void listar() throws Exception{
//1. Especificar o comando SQL (SELECT)
public static String listar() throws Exception {
// 1. Especificar o comando SQL (SELECT)
String sql = "SELECT * FROM tb_pessoa";
//2. Abrir uma conexão (usando try-with-resources)
//3. Preparar o comando
try(
Connection conexao = ConnectionFactory.getConnection();
PreparedStatement ps = conexao.prepareStatement(sql);
//4. Substituir os eventuais placeholders
//5. Executar o comando
java.sql.ResultSet rs = ps.executeQuery();
){
//6. Tratar o resultado (pois ele é uma tabela)
while(rs.next()){
String msg = "\n";
// 2. Abrir uma conexão (usando try-with-resources)
// 3. Preparar o comando
try (
Connection conexao = ConnectionFactory.getConnection();
PreparedStatement ps = conexao.prepareStatement(sql);
// 4. Substituir os eventuais placeholders
// 5. Executar o comando
java.sql.ResultSet rs = ps.executeQuery();) {
// 6. Tratar o resultado (pois ele é uma tabela)
while (rs.next()) {
int codigo = rs.getInt("cod_pessoa");
String nome = rs.getString("nome");
String fone = rs.getString("fone");
String email = rs.getString("email");
System.out.printf(
"código: %d, nome: %s, fone: %s, e-mail: %s\n",
codigo, nome, fone, email
);
}

msg += String.format("Codigo: %s \nNome: %s \nFone: %s \nEmail: %s\n\n", codigo, nome, fone, email);

}
return msg;
}
}

public Pessoa (String nome, String fone, String email){
this(0, nome, fone, email);
// Buscar por cod_pessoa
public static Pessoa buscar(int codigo) throws Exception {
// Especificar comando SQL
String sql = "SELECT * FROM tb_pessoa WHERE cod_pessoa = ?";
Pessoa p = new Pessoa(null, null, null);
// Abrir conexão e preparar comando
try (
Connection conexao = ConnectionFactory.getConnection();
PreparedStatement ps = conexao.prepareStatement(sql);) {
// Substituir placeholder
ps.setInt(1, codigo);
// Executar comando
java.sql.ResultSet rs = ps.executeQuery();
if (rs.next()) {
p.setNome(rs.getString("nome"));
p.setFone(rs.getString("fone"));
p.setEmail(rs.getString("email"));
System.out.println("\n" + p.getNome() + "\n" + p.getFone() + "\n" + p.getEmail() + "\n");
}
}
return p;
}

public Pessoa(String nome, String fone, String email) {
this(0, nome, fone, email);
}

public Pessoa(int codigo, String nome, String fone, String email){
public Pessoa(int codigo, String nome, String fone, String email) {
setCodigo(codigo);
setNome(nome);
setFone(fone);
setEmail(email);
}

public Pessoa(int codigo){
public Pessoa(int codigo) {
this(codigo, null, null, null);
}

Expand All @@ -115,6 +132,7 @@ public int getCodigo() {
public String getEmail() {
return email;
}

public String getFone() {
return fone;
}
Expand All @@ -138,4 +156,4 @@ public void setFone(String fone) {
public void setNome(String nome) {
this.nome = nome;
}
}
}
13 changes: 7 additions & 6 deletions Principal.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ public static void main(String[] args) {
break;
}
case 2:{
String nome = JOptionPane.showInputDialog("Digite o nome");
String fone = JOptionPane.showInputDialog("Digite o fone");
String email = JOptionPane.showInputDialog("Digite o e-mail");
int codigo = parseInt(JOptionPane.showInputDialog("Digite o código"));
Pessoa p = new Pessoa(codigo, nome, fone, email);
int codigo = parseInt(JOptionPane.showInputDialog(Pessoa.listar() + "Digite o código:"));
Pessoa pessoa = Pessoa.buscar(codigo);
String nome = JOptionPane.showInputDialog( Pessoa.listar() + "Digite o nome:", pessoa.getNome());
String fone = JOptionPane.showInputDialog(Pessoa.listar() + "Digite o fone:",pessoa.getFone());
String email = JOptionPane.showInputDialog(Pessoa.listar() + "Digite o e-mail:",pessoa.getEmail());
Pessoa p = new Pessoa(codigo,nome,fone,email);
p.atualizar();
JOptionPane.showMessageDialog(null, "Pessoa atualizada");
break;
Expand All @@ -35,7 +36,7 @@ public static void main(String[] args) {
break;
}
case 4:
Pessoa.listar();
JOptionPane.showMessageDialog(null, Pessoa.listar());
break;
case 0:
break;
Expand Down
28 changes: 14 additions & 14 deletions TesteConexao.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
import java.sql.Connection;
import java.sql.DriverManager;
public class TesteConexao{

public class TesteConexao {
public static void main(String[] args) throws Exception {
//jdbc:mysql://localhost:3306/20221_fatec_ipi_poo_pessoas?useTimezone=true&serverTimezone=UTC
// jdbc:mysql://localhost:3306/20221_fatec_ipi_poo_pessoas?useTimezone=true&serverTimezone=UTC
String host = "localhost";
String port = "3306";
String db = "20221_fatec_ipi_poo_pessoas";
String user = "root";
String password = "1234";
String password = "12345678";

String stringDeConexao = String.format(
"jdbc:mysql://%s:%s/%s?useTimezone=true&serverTimezone=UTC",
host,
port,
db
);
//cláusula catch or declare
"jdbc:mysql://%s:%s/%s?useTimezone=true&serverTimezone=UTC",
host,
port,
db);
// cláusula catch or declare
Connection conexao = DriverManager.getConnection(
stringDeConexao,
user,
password
);
stringDeConexao,
user,
password);
if (conexao != null)
System.out.println("Conexão OK!");
else
System.out.println("Conexão NOK!");
System.out.println("Conexão falhou!");
conexao.close();
}
}

0 comments on commit 9aaf7e8

Please sign in to comment.