Skip to content

Commit 40d9c18

Browse files
committed
Refatoração do CRUD
1 parent 9ba52e0 commit 40d9c18

File tree

9 files changed

+249
-122
lines changed

9 files changed

+249
-122
lines changed

src/main/java/com/example/AppBd.java

Lines changed: 26 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,140 +1,46 @@
11
package com.example;
2-
3-
import java.sql.Connection;
4-
import java.sql.DriverManager;
52
import java.sql.SQLException;
3+
import com.example.dao.ConnectionManager;
4+
import com.example.dao.DAO;
5+
import com.example.dao.EstadoDAO;
6+
import com.example.dao.ProdutoDAO;
7+
import com.example.model.Marca;
8+
import com.example.model.Produto;
69

710
public class AppBd {
8-
private static final String PASSWORD = "";
9-
private static final String USERNAME = "gitpod";
10-
private static final String JDBC_URL = "jdbc:postgresql://localhost/postgres";
11-
1211
public static void main(String[] args) {
1312
new AppBd();
1413
}
1514
public AppBd(){
1615
carregarDriverJDBC();
17-
try (var conn = getConnection()){
18-
listarEstados(conn);
19-
localizarEstado(conn, "PR");
16+
try (var conn = ConnectionManager.getConnection()){
17+
var estadoDAO = new EstadoDAO(conn);
18+
estadoDAO.listar();
19+
estadoDAO.localizar("PR");
20+
21+
var marca = new Marca();
22+
marca.setId(1L);
23+
var produto = new Produto();
24+
produto.setMarca(marca);
25+
produto.setNome("Produto teste");
26+
produto.setValor(10);
27+
28+
var produtoDAO = new ProdutoDAO(conn);
2029

21-
// var marca = new Marca();
22-
// marca.setId(1L);
23-
// var produto = new Produto();
24-
// produto.setMarca(marca);
25-
// produto.setNome("Produto teste");
26-
// produto.setValor(10);
27-
// inserirProduto(conn, produto);
28-
excluirProduto(conn, 201L);
29-
listarDadosTabela(conn, "produto");
30+
produtoDAO.inserir(produto);
31+
produtoDAO.excluir(201L);
32+
33+
var dao = new DAO(conn);
34+
dao.listar("produto");
3035
} catch (SQLException e) {
3136
// TODO: handle exception
37+
System.err.println("Erro ao tentar executar consulta SQL: "+ e.getMessage());
3238
}
3339

3440

3541
}
3642

37-
private void excluirProduto(Connection conn, long id) {
38-
var sql = "delete from produto where id = ?";
39-
try (var statement = conn.prepareStatement(sql)) {
40-
statement.setLong(1, id);
41-
if(statement.executeUpdate()==1){
42-
System.out.println("Produto excluído com sucesso");
43-
}else System.out.println("Produto não localizado");
44-
} catch (SQLException e) {
45-
// TODO Auto-generated catch block
46-
System.err.println("Erro a excluir o Produto- "+ e.getMessage());
47-
}
48-
49-
}
50-
private void inserirProduto(Connection conn, Produto produto) {
51-
var sql = "insert into produto (nome, marca_id, valor) values (?, ?, ?)";
52-
try (var statement = conn.prepareStatement(sql)){
53-
statement.setString(1, produto.getNome());
54-
statement.setLong(2, produto.getMarca().getId());
55-
statement.setDouble(3, produto.getValor());
56-
statement.executeUpdate();
57-
} catch (SQLException e) {
58-
// TODO Auto-generated catch block
59-
System.err.println("Erro ao tentar executar consulta SQL: "+ e.getMessage());
60-
};
61-
}
62-
63-
private void alterarProduto(Connection conn, Produto produto) {
64-
var sql = "update produto set nome = ?, marca_id = ?, valor = ? where id = ?";
65-
try (var statement = conn.prepareStatement(sql)){
66-
statement.setString(1, produto.getNome());
67-
statement.setLong(2, produto.getMarca().getId());
68-
statement.setDouble(3, produto.getValor());
69-
statement.setLong(4, produto.getId());
70-
statement.executeUpdate();
71-
} catch (SQLException e) {
72-
// TODO Auto-generated catch block
73-
System.err.println("Erro na alteração do Produto: "+ e.getMessage());
74-
};
75-
}
76-
private void listarDadosTabela(Connection conn, String nomeTabela) {
77-
var sql = "select * from "+ nomeTabela;
78-
79-
try {
80-
81-
var statement = conn.createStatement();
82-
var result = statement.executeQuery(sql);
83-
var metadata = result.getMetaData();
84-
int cols = metadata.getColumnCount();
85-
86-
for (int i = 1; i <= cols; i++) {
87-
System.out.printf("%-25s |", metadata.getColumnName(i));
88-
}
89-
System.out.println();
90-
while (result.next()) {
91-
for (int i = 1; i <= cols; i++) {
92-
System.out.printf("%-25s |", result.getString(i));
93-
}
94-
System.out.println();
95-
}
96-
} catch (SQLException e) {
97-
// TODO Auto-generated catch block
98-
System.err.println("Erro ao tentar executar consulta SQL: "+ e.getMessage());
99-
}
100-
101-
}
102-
private void localizarEstado(Connection conn, String uf) {
103-
try {
104-
var sql = "select * from estado where uf = ?";
105-
var statement = conn.prepareStatement(sql);
106-
statement.setString(1, uf);
107-
var result = statement.executeQuery();
108-
if(result.next())
109-
System.out.printf("Id: %d Nome: %s Uf: %s\n", result.getInt("id"), result.getString("nome"), result.getString("uf"));
110-
} catch (SQLException e) {
111-
// TODO Auto-generated catch block
112-
System.err.println("Erro ao tentar executar consulta SQL");
113-
}
114-
}
115-
116-
private void listarEstados(Connection conn) {
117-
118-
try {
119-
120-
System.out.println("Conexão com o banco realizada com sucesso.");
121-
122-
var statement = conn.createStatement();
123-
var result = statement.executeQuery("select * from estado");
124-
while(result.next()){
125-
System.out.printf("Id: %d Nome: %s Uf: %s\n", result.getInt("id"), result.getString("nome"), result.getString("uf"));
126-
}
127-
}
128-
catch (SQLException e) {
129-
// TODO Auto-generated catch block
130-
System.err.println("Não foi possível conectar ao banco de dados: "+ e.getMessage());
131-
}
132-
}
133-
134-
private static Connection getConnection() throws SQLException{
135-
return DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD);
136-
}
137-
43+
13844
private static void carregarDriverJDBC() {
13945
try {
14046
Class.forName("org.postgresql.Driver");
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.example.dao;
2+
3+
import java.sql.Connection;
4+
import java.sql.DriverManager;
5+
import java.sql.SQLException;
6+
7+
public class ConnectionManager {
8+
9+
private static final String PASSWORD = "";
10+
private static final String USERNAME = "gitpod";
11+
private static final String JDBC_URL = "jdbc:postgresql://localhost/postgres";
12+
13+
public static Connection getConnection() throws SQLException{
14+
return DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD);
15+
}
16+
17+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.example.dao;
2+
3+
import java.sql.Connection;
4+
import java.sql.SQLException;
5+
6+
public class DAO {
7+
private Connection conn;
8+
9+
public DAO(Connection conn) {
10+
this.conn = conn;
11+
}
12+
13+
public void listar(String nomeTabela) {
14+
var sql = "select * from "+ nomeTabela;
15+
16+
try {
17+
18+
var statement = conn.createStatement();
19+
var result = statement.executeQuery(sql);
20+
var metadata = result.getMetaData();
21+
int cols = metadata.getColumnCount();
22+
23+
for (int i = 1; i <= cols; i++) {
24+
System.out.printf("%-25s |", metadata.getColumnName(i));
25+
}
26+
System.out.println();
27+
while (result.next()) {
28+
for (int i = 1; i <= cols; i++) {
29+
System.out.printf("%-25s |", result.getString(i));
30+
}
31+
System.out.println();
32+
}
33+
} catch (SQLException e) {
34+
// TODO Auto-generated catch block
35+
System.err.println("Erro ao tentar executar consulta SQL: "+ e.getMessage());
36+
}
37+
38+
}
39+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.example.dao;
2+
3+
import java.sql.Connection;
4+
import java.sql.SQLException;
5+
6+
public class EstadoDAO {
7+
private Connection conn;
8+
9+
public EstadoDAO(Connection conn){
10+
this.conn = conn;
11+
}
12+
13+
public void listar() {
14+
15+
try {
16+
17+
18+
var statement = conn.createStatement();
19+
var result = statement.executeQuery("select * from estado");
20+
while(result.next()){
21+
System.out.printf("Id: %d Nome: %s Uf: %s\n", result.getInt("id"), result.getString("nome"), result.getString("uf"));
22+
}
23+
}
24+
catch (SQLException e) {
25+
// TODO Auto-generated catch block
26+
System.err.println("Não foi possível conectar ao banco de dados: "+ e.getMessage());
27+
}
28+
}
29+
30+
public void localizar(String uf) {
31+
try {
32+
var sql = "select * from estado where uf = ?";
33+
var statement = conn.prepareStatement(sql);
34+
statement.setString(1, uf);
35+
var result = statement.executeQuery();
36+
if(result.next())
37+
System.out.printf("Id: %d Nome: %s Uf: %s\n", result.getInt("id"), result.getString("nome"), result.getString("uf"));
38+
} catch (SQLException e) {
39+
// TODO Auto-generated catch block
40+
System.err.println("Erro ao tentar executar consulta SQL");
41+
}
42+
}
43+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.example.dao;
2+
3+
import java.sql.Connection;
4+
import java.sql.SQLException;
5+
6+
import com.example.model.Produto;
7+
8+
public class ProdutoDAO {
9+
private Connection conn;
10+
11+
public ProdutoDAO(Connection conn) {
12+
this.conn = conn;
13+
}
14+
15+
public void excluir(long id) {
16+
var sql = "delete from produto where id = ?";
17+
try (var statement = conn.prepareStatement(sql)) {
18+
statement.setLong(1, id);
19+
if(statement.executeUpdate()==1){
20+
System.out.println("Produto excluído com sucesso");
21+
}else System.out.println("Produto não localizado");
22+
} catch (SQLException e) {
23+
// TODO Auto-generated catch block
24+
System.err.println("Erro a excluir o Produto- "+ e.getMessage());
25+
}
26+
27+
}
28+
public void inserir(Produto produto) {
29+
var sql = "insert into produto (nome, marca_id, valor) values (?, ?, ?)";
30+
try (var statement = conn.prepareStatement(sql)){
31+
statement.setString(1, produto.getNome());
32+
statement.setLong(2, produto.getMarca().getId());
33+
statement.setDouble(3, produto.getValor());
34+
statement.executeUpdate();
35+
} catch (SQLException e) {
36+
// TODO Auto-generated catch block
37+
System.err.println("Erro ao tentar executar consulta SQL: "+ e.getMessage());
38+
};
39+
}
40+
41+
public void alterar(Produto produto) {
42+
var sql = "update produto set nome = ?, marca_id = ?, valor = ? where id = ?";
43+
try (var statement = conn.prepareStatement(sql)){
44+
statement.setString(1, produto.getNome());
45+
statement.setLong(2, produto.getMarca().getId());
46+
statement.setDouble(3, produto.getValor());
47+
statement.setLong(4, produto.getId());
48+
statement.executeUpdate();
49+
} catch (SQLException e) {
50+
// TODO Auto-generated catch block
51+
System.err.println("Erro na alteração do Produto: "+ e.getMessage());
52+
};
53+
}
54+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.example.model;
2+
3+
public class Estado {
4+
private Long id;
5+
public Long getId() {
6+
return id;
7+
}
8+
public void setId(Long id) {
9+
this.id = id;
10+
}
11+
public String getNome() {
12+
return nome;
13+
}
14+
public void setNome(String nome) {
15+
this.nome = nome;
16+
}
17+
public String getUf() {
18+
return uf;
19+
}
20+
public void setUf(String uf) {
21+
this.uf = uf;
22+
}
23+
public RegiaoGeografica getRegiao() {
24+
return regiao;
25+
}
26+
public void setRegiao(RegiaoGeografica regiao) {
27+
this.regiao = regiao;
28+
}
29+
public int getAreaKm2() {
30+
return areaKm2;
31+
}
32+
public void setAreaKm2(int areaKm2) {
33+
this.areaKm2 = areaKm2;
34+
}
35+
public int getPopulacao() {
36+
return populacao;
37+
}
38+
public void setPopulacao(int populacao) {
39+
this.populacao = populacao;
40+
}
41+
private String nome;
42+
private String uf;
43+
private RegiaoGeografica regiao;
44+
private int areaKm2;
45+
private int populacao;
46+
}

src/main/java/com/example/Marca.java renamed to src/main/java/com/example/model/Marca.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example;
1+
package com.example.model;
22

33
public class Marca {
44
private Long id;

src/main/java/com/example/Produto.java renamed to src/main/java/com/example/model/Produto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example;
1+
package com.example.model;
22

33
public class Produto {
44
private Long id;

0 commit comments

Comments
 (0)