public static void main(String[] args) throws Exception {
String sql = "select codigo, nome, sexo, email from pessoa";
String url = "jdbc:oracle:thin:@localhost:1521:xe";//url informa local que está o banco de dados, localhost = máquina que está sendo utilizada
try (Connection con = DriverManager.getConnection(url, "secretariaDDE", "entomologia");//cria conexão com o banco de dados
PreparedStatement stm = con.prepareStatement(sql); //encaminhar requisições ao servidor
ResultSet rs = stm.executeQuery()) {//resulta lista de registros da tabela
while(rs.next()) {
String s = rs.getString("codigo")
+ "; " + rs.getString("nome")
+ "; " + rs.getString("sexo")
+ "; " + rs.getString("email");
System.out.println(s); //imprimi todos os dados solicitados acima que encontrar na tabela
}
}
}
}
package br.com.xti.jdbc;
public class Conta {
int numero;
String cliente;
double saldo;
public Conta(int numero, String cliente, double saldo) {
this.numero = numero;
this.cliente = cliente;
this.saldo = saldo;
}
public String toString() {
return numero + "," + cliente + "," + saldo;
}
public class ContaCRUD { //CRUD = create, read, update, delete [os métodos utilizam a mesma conexão]
public void transferir(Connection con, Conta origem, Conta destino, double valor) throws SQLException{
if(origem.saldo >= valor){
try{
con.setAutoCommit(false); //conexão não poderá auto comitar todas as operações, trata as operações conjuntamente
/* SAQUE CONTA ORIGEM */
origem.saldo -= valor;
alterar(con, origem);
/* DEPÓSITO CONTA DESTINO */
destino.saldo += valor;
alterar(con, destino);
con.commit(); //fecha a transação se tudo for bem sucedido
} catch(Exception e){
con.rollback(); //se der problema desfaz a transação
}
}
}
public void criar(Connection con, Conta conta) throws SQLException {
String sql = "insert into conta values (?,?,?)";//insere na tabela conta onde o numero for o que eu informar
try(PreparedStatement stm = con.prepareStatement(sql)) {
stm.setInt(1, conta.numero);
stm.setString(2, conta.cliente);
stm.setDouble(3, conta.saldo);
stm.executeUpdate();
}
}
public void alterar(Connection con, Conta conta) throws SQLException {
String sql = "update conta set cliente=?, saldo=? where numero=?";//altera da tabela conta onde o numero for o que eu informar
try(PreparedStatement stm = con.prepareStatement(sql)) {
stm.setString(1, conta.cliente);
stm.setDouble(2, conta.saldo);
stm.setInt(3, conta.numero);
stm.executeUpdate();
}
}
public void excluir(Connection con, Conta conta) throws SQLException {
String sql = "delete conta where numero=?"; //deleta da tabela conta onde o numero for o que eu informar
try(PreparedStatement stm = con.prepareStatement(sql)) {
stm.setInt(1, conta.numero);
stm.executeUpdate();
}
}
public List<Conta> ler(Connection con) throws SQLException{
List<Conta> lista = new ArrayList<>();
String sql = "select numero,cliente,saldo from conta";
try(PreparedStatement stm = con.prepareStatement(sql);
ResultSet rs = stm.executeQuery()) {
while(rs.next()){
lista.add(new Conta(rs.getInt(1), rs.getString(2), rs.getDouble(3)));
}
}
return lista;
}
public static void main(String[] args) throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
try(Connection con = DriverManager.getConnection(url, "secretariaDDE", "entomologia")){
ContaCRUD crud = new ContaCRUD();
List<Conta> contas = crud.ler(con);
for (Conta conta : contas) {
System.out.println(conta);
}
Conta origem = contas.get(0); //pega primeira conta da lista
Conta destino = contas.get(1); //pega segunda conta da lista
crud.transferir(con, origem, destino, 500);
contas = crud.ler(con);
for (Conta conta : contas) {
System.out.println(conta);
}
}
}
public static void main(String[] args) throws Exception{
/* INCLUSÃO DE APENAS UM REGISTRO
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String sql = "insert into pessoa values(3, 'Caio', 'M', 'caio@xti.com.br')";
try(Connection con = DriverManager.getConnection(url, "secretariaDDE", "entomologia");
PreparedStatement stm = con.prepareStatement(sql)) {
stm.executeUpdate();
} */
// INCLUSÃO DE VÁRIOS REGISTROS
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String sql = "insert into pessoa values(?,?,?,?)"; //? deixa aberto as opções para inclusão na tabela
String[] pessoas = {"Sandra", "Beatriz", "Juliana", "Fatima", "Veranda", "Tereza", "Leila"};
try(Connection con = DriverManager.getConnection(url, "secretariaDDE", "entomologia")) {
try(PreparedStatement stm = con.prepareStatement(sql)) {
for (int i = 0; i < pessoas.length; i++) {
stm.setInt(1, i+4);//i+4 insere a partir da posição 4, já tem 3 na tabela original
stm.setString(2, pessoas[i]);
stm.setString(3, "F");
stm.setString(4, pessoas[i].toLowerCase() + "@xti.com.br"); //construção do email, nome em minúsculo completa com @xti.com.br
stm.addBatch(); //executa vários comandos de inclusão de uma única vez
} stm.executeBatch();
} catch(SQLException e){}
sql = "select nome, email from pessoa";
try(PreparedStatement stm2 = con.prepareStatement(sql);
ResultSet rs = stm2.executeQuery()) {
while(rs.next()) {
System.out.println(rs.getString(1) + ":" + rs.getString(2));
}
}
}
}
package br.com.xti.jdbc;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
public class AcessoBanco {
}
package br.com.xti.jdbc;
public class Conta {
}
package br.com.xti.jdbc;
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;
public class ContaCRUD { //CRUD = create, read, update, delete [os métodos utilizam a mesma conexão]
}
package br.com.xti.jdbc;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;
public class IncluirDados {
}