Você está na página 1de 6

APOSTILA JAVA - POSTGRESQL – NETBEANS (botão de navegação e JTable)

Criar o banco de dados: filmes

Tabela: cadastro

NOME DO CAMPO TIPO DE DADOS TAMANHO


Código (PK) Inteiro auto-incremento
Título Varchar 40
Gênero Varchar 30
Produtora Varchar 30
Data_compra Date
create table cadastro(
codigo serial primary key not null,
titulo varchar(40),
genero varchar(30),
produtora varchar(30),
data_compra date
);

insert into cadastro(titulo,genero,produtora,data_compra)


values ('Avatar','ficção científica','Lightstorm Entertainment','04/08/2009');

select * from cadastro;

Class Conecta:
import java.sql.*;
import javax.swing.*;

public class Conecta {


public static void main(String[] args) {
final String DRIVER = "org.postgresql.Driver";
final String URL = "jdbc:postgresql://localhost:5432/filmes";
try {
Class.forName(DRIVER);
Connection connection = DriverManager.getConnection(URL, "postgres", "root");
JOptionPane.showMessageDialog(null, "Conexao realizada com sucesso");
connection.close();
}
catch (ClassNotFoundException erro) {
JOptionPane.showMessageDialog(null, "Driver nao encontrado!\n"
+ erro.toString());
}
catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Problemas na conexao com a fonte de dados\n"
+ erro.toString());
}
}
}

Class BD
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BD {
public Connection conn = null;
private final String driver = "org.postgresql.Driver";
private final String url = "jdbc:postgresql://localhost:5432/filmes";
private final String login = "postgres";
private final String senha = "root";

/**
*metodo que faz conexao com o banco de dados
*retorna true se houve sucesso, ou false em caso negativo
*/
public boolean getConnection(){
try{
Class.forName(driver);
conn = DriverManager.getConnection(url,login,senha);
System.out.println("Conectou...");
return true;
}
catch(ClassNotFoundException erro){
System.out.println("Driver não encontrado"+erro.toString());
return false;
}
catch(SQLException erro){
System.out.println("Falha ao conectar"+erro.toString());
return false;
}
}

public void close(){


try{
conn.close();
System.out.println("Desconectou...");
}
catch(SQLException erro){ }
}
}

Class ConsultaSQL:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
public class ConsultaSQL extends JFrame {
private JLabel label1;
private JTextField tfSQL;
private JButton btExecutar;
private JScrollPane scrollTable;
private JTable table;
private BD bd;
private PreparedStatement statement;
private ResultSet resultSet;

public static void main(String args[]) {


JFrame frame = new ConsultaSQL();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public ConsultaSQL() {
inicializarComponentes();
definirEventos();
}

public void inicializarComponentes() {


setLayout(null);
setTitle("Aprendendo consultas com SQL");
setBounds(200, 200, 600, 500);
setResizable(false);
label1 = new JLabel("Digite o comando SQL:");
label1.setBounds(50, 10, 200, 25);
tfSQL = new JTextField(50);
tfSQL.setBounds(50, 35, 500, 25);
btExecutar = new JButton("Executar");
btExecutar.setBounds(50, 70, 100, 25);
scrollTable = new JScrollPane();
scrollTable.setBounds(50, 100, 500, 300);
add(scrollTable);
add(label1);
add(tfSQL);
add(btExecutar);
bd = new BD();
}

public void definirEventos() {


btExecutar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (tfSQL.getText().equals("")) {
return;
}
try {
if (!bd.getConnection()) {
JOptionPane.showMessageDialog(null, "Falha na conexao, o sistema sera fechado!");
System.exit(0);
}
statement = bd.conn.prepareStatement(tfSQL.getText());
resultSet = statement.executeQuery();
DefaultTableModel tableModel = new DefaultTableModel(
new String[]{},0) {
};
int qtdeColunas = resultSet.getMetaData().getColumnCount();
for (int indice = 1; indice <=qtdeColunas ; indice++)
tableModel.addColumn(resultSet.getMetaData().getColumnName(indice));

table = new JTable(tableModel);


DefaultTableModel dtm = (DefaultTableModel) table.getModel();

while (resultSet.next()) {
try {
String[] dados = new String[qtdeColunas];
for (int i = 1; i <= qtdeColunas; i++) {
dados[i-1] = resultSet.getString(i);
System.out.println(resultSet.getString(i));
}
dtm.addRow(dados);
System.out.println();
} catch (SQLException erro) {
}
scrollTable.setViewportView(table);
}
resultSet.close();
statement.close();
bd.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "Comando SQL invalido !" + erro.toString());
}
}
});
}
}

Class Filmes:
public class Filmes {
private String codigo, titulo, genero, produtora, dataCompra;

public String getCodigo() {


return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getDataCompra() {
return dataCompra;
}
public void setDataCompra(String dataCompra) {
this.dataCompra = dataCompra;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public String getProdutora() {
return produtora;
}
public void setProdutora(String produtora) {
this.produtora = produtora;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}

Class FilmesDAO:
import java.sql.*;

public class FilmesDAO {


public Filmes filme;
public BD bd;
private PreparedStatement statement;
private ResultSet resultSet;
private String men, sql;
public static final byte INCLUSAO = 1;
public static final byte ALTERACAO = 2;
public static final byte EXCLUSAO = 3;

public FilmesDAO() {
bd = new BD();
filme = new Filmes();
}

public boolean localizar() {


sql = "select * from filmes where codigo = ?";
try{
statement = bd.conn.prepareStatement(sql);
statement.setString(1, filme.getCodigo());
resultSet = statement.executeQuery();
resultSet.first();
filme.setCodigo(resultSet.getString(1));
filme.setTitulo(resultSet.getString(2));
filme.setGenero(resultSet.getString(3));
filme.setProdutora(resultSet.getString(4));
filme.setDataCompra(""+resultSet.getDate(5));
return true;
}
catch (SQLException erro) {
return false;
}
}
public String atualizar(int operacao) {
men = "Operacao realizada com sucesso!";
try {
if (operacao==INCLUSAO){
sql = "insert into filmes values (?,?,?,?,?)";
statement = bd.conn.prepareStatement(sql);
statement.setString(1, filme.getCodigo());
statement.setString(2, filme.getTitulo());
statement.setString(3, filme.getGenero());
statement.setString(4, filme.getProdutora());
statement.setString(5, filme.getDataCompra());
}
else if (operacao==ALTERACAO){
sql = "update filmes set titulo = ?, genero = ?, produtora = ?, " +
"datacompra = ? where codigo = ?";
statement = bd.conn.prepareStatement(sql);
statement.setString(5, filme.getCodigo());
statement.setString(1, filme.getTitulo());
statement.setString(2, filme.getGenero());
statement.setString(3, filme.getProdutora());
statement.setString(4, filme.getDataCompra());
}
else if (operacao==EXCLUSAO){
sql = "delete from filmes where codigo = ?";
statement = bd.conn.prepareStatement(sql);
statement.setString(1, filme.getCodigo());
}
if (statement.executeUpdate() == 0)
men = "Falha na operacao!";
} catch (SQLException erro) {
men = "Falha na operacao " + erro.toString();
}
return men;
}
}

Você também pode gostar