Skip to content

Commit

Permalink
material da aula 3
Browse files Browse the repository at this point in the history
  • Loading branch information
mauricio committed Dec 6, 2011
1 parent 1bac657 commit 7b0b8a6
Show file tree
Hide file tree
Showing 8 changed files with 194 additions and 8 deletions.
Binary file modified pessoas_idez.h2.db
Binary file not shown.
2 changes: 1 addition & 1 deletion src/br/com/faculdadeidez/java/DBTest.java
Expand Up @@ -23,7 +23,7 @@ public void testCreateTable() throws Exception {
Driver.load();

Connection c = DriverManager.getConnection( "jdbc:h2:pessoas_idez" );
Statement s =c.createStatement();
Statement s = c.createStatement();
s.execute( "create table pessoas ( id bigint generated by default as identity, primary key (id), nome VARCHAR(255), email VARCHAR(255), endereco VARCHAR(255))" );
c.commit();
c.close();
Expand Down
23 changes: 17 additions & 6 deletions src/br/com/faculdadeidez/java/configuracao/IOUtils.java
Expand Up @@ -2,21 +2,32 @@

import java.io.Closeable;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

public class IOUtils {

private IOUtils() {}
private IOUtils() {
}

public static void forceClose(Closeable r) {
if ( r != null ) {
if (r != null) {
try {
r.close();
} catch ( IOException e ) {
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

public static void forceClose(Connection c) {
if (c != null) {
try {
c.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}




}
42 changes: 42 additions & 0 deletions src/br/com/faculdadeidez/java/db/Pessoa.java
@@ -0,0 +1,42 @@
package br.com.faculdadeidez.java.db;

public class Pessoa {

private Long id;
private String nome;
private String email;
private String endereco;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getEndereco() {
return endereco;
}

public void setEndereco(String endereco) {
this.endereco = endereco;
}

}
10 changes: 10 additions & 0 deletions src/br/com/faculdadeidez/java/db/RepositorioDePessoas.java
@@ -0,0 +1,10 @@
package br.com.faculdadeidez.java.db;

import java.util.List;

public interface RepositorioDePessoas {

public void adicionar( Pessoa p );
public List<Pessoa> listar();

}
85 changes: 85 additions & 0 deletions src/br/com/faculdadeidez/java/db/RepositorioDePessoasJDBC.java
@@ -0,0 +1,85 @@
package br.com.faculdadeidez.java.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.faculdadeidez.java.configuracao.IOUtils;

public class RepositorioDePessoasJDBC implements RepositorioDePessoas {

static {
try {
Class.forName("org.h2.Driver");
} catch (Exception e) {
throw new RuntimeException(e);
}
}

protected Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:h2:pessoas_idez");
} catch (Exception e) {
throw new RuntimeException(e);
}
}

@Override
public void adicionar(Pessoa p) {

Connection c = this.getConnection();

try {

PreparedStatement s = c.prepareStatement(
"INSERT INTO pessoas ( nome, email, endereco ) VALUES ( ?, ?, ? )");
s.setString( 1, p.getNome() );
s.setString(2, p.getEmail());
s.setString( 3 , p.getEndereco());

s.executeUpdate();

} catch ( SQLException e ) {
throw new RuntimeException(e);
} finally {
IOUtils.forceClose(c);
}

}

@Override
public List<Pessoa> listar() {

List<Pessoa> pessoas = new ArrayList<Pessoa>();
Connection c = this.getConnection();

try {

PreparedStatement s = c.prepareStatement( "SELECT * FROM pessoas" );

ResultSet resultSet = s.executeQuery();

while ( resultSet.next() ) {
Pessoa p = new Pessoa();
p.setId( resultSet.getLong( "id" ) );
p.setNome( resultSet.getString("nome") );
p.setEmail(resultSet.getString("email") );
p.setEndereco( resultSet.getString("endereco") );

pessoas.add(p);
}

} catch ( SQLException e ) {
throw new RuntimeException(e);
} finally {
IOUtils.forceClose( c );
}

return pessoas;
}

}
30 changes: 30 additions & 0 deletions src/br/com/faculdadeidez/java/db/RepositorioDePessoasTest.java
@@ -0,0 +1,30 @@
package br.com.faculdadeidez.java.db;

import java.util.List;

import org.junit.Assert;
import org.junit.Test;

public class RepositorioDePessoasTest {

@Test
public void testAdicionar() {

Pessoa p = new Pessoa();
p.setNome( "José " + System.currentTimeMillis() );
p.setEmail( "jose@gmail.com" );
p.setEndereco( "Meu endereço" );

RepositorioDePessoas repo = new RepositorioDePessoasJDBC();

repo.adicionar(p);

List<Pessoa> pessoas = repo.listar();

Pessoa ultima = pessoas.get( pessoas.size() - 1 );

Assert.assertEquals( p.getNome(), ultima.getNome() );

}

}
@@ -1,13 +1,21 @@
package br.com.faculdadeidez.java.pagamentos;

import org.junit.Assert;
import org.junit.Test;

public class ServicoDePagamentoTest {

@Test
public void testPagarComSucesso() {
public void testPagarComSucesso() {
OperadoraDeCartao operadora = new FakeOperadoraDeCartao();
ServicoDePagamento servico = new ServicoDePagamento(operadora);

Cartao cartao = new Cartao();
cartao.setNumero("4444 4444 4444 4444");

Cliente cliente = new Cliente();

Assert.assertTrue( servico.pagar(cartao, cliente) );

}

Expand Down

0 comments on commit 7b0b8a6

Please sign in to comment.