Fiz o que vc falou pra fazer criei a classe conexao
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Conexao {
private static Conexao conexao = new Conexao();
private Connection connection;
Conexao() {}
public static Conexao getInstance() {
return conexao;
}
public Connection getConnection() throws SQLException {
if (connection == null) {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
connection = DriverManager.getConnection("jdbc:postgresql:TurmaN40", "postgres", "postgres");
}
return connection;
}
public void commit() throws SQLException {
connection.commit();
connection = null;
}
public void rollback() throws SQLException {
connection.rollback();
connection = null;
}
}
a classe persistenciausuario
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import Modelo.LoginUser;
public class PersistenciaUsuario {
public List<LoginUser> recuperarTodos() throws SQLException {
String sentencaSelect = "SELECT * FROM LoginUser";
Connection connectionSelect = Conexao.getInstance().getConnection();
PreparedStatement statementSelect = connectionSelect.prepareStatement(sentencaSelect);
ResultSet resultSelect = statementSelect.executeQuery();
List<LoginUser> usuario = new ArrayList<LoginUser>();
while (resultSelect.next()) {
usuario.add( recuperarObjeto(resultSelect) );
}
statementSelect.close();
return usuario;
}
public LoginUser recuperarObjeto(ResultSet resultSelect) throws SQLException {
LoginUser usuario = new LoginUser();
usuario.setUsuario(resultSelect.getString("usuario"));
usuario.setSenha(resultSelect.getString("senha"));
return usuario;
}
}
criei a classe do getters e setters LoginUser
package Modelo;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class LoginUser {
@Id
private String usuario;
private String senha;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
e criei a classe main
import java.sql.SQLException;
import java.util.List;
import org.postgresql.core.ConnectionFactory;
import Modelo.LoginUser;
public class Main {
public static void main(String[] args) throws SQLException {
try {
PersistenciaUsuario persistenciaUsuario = new PersistenciaUsuario();
List<LoginUser> usuarios = persistenciaUsuario.recuperarTodos();
System.out.println("Lista de usuários:");
System.out.println("_____________________________________");
for (LoginUser usuario : usuarios) {
System.out.println(usuario.getUsuario() + " - " + usuario.getSenha());
System.out.println("_____________________________________");
}
}
catch (SQLException errSQL) {
errSQL.printStackTrace();
Conexao.getInstance().rollback(); // qualquer erro, cancela tudo que fez no BD.
}
}
}
e a efetuar login ta ai
import java.awt.*;
import java.awt.event.*;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.*;
import java.sql.*;
import Modelo.LoginUser;
//import controle.Utilitarios;
// Ctrl+Shift+F => Formata o código
// Ctrl+A e Ctrl+i => Formata a seleção
public class EfetuarLogin extends JFrame {
Conexao con = new Conexao();
private JLabel rotulo1, rotulo2;
private JTextField caixa1, caixa2;
private JButton botao1;
protected LoginUser select;
private static EntityManagerFactory fabricaDeEntidades = null;
private static EntityManager gerenciador = null;
public EfetuarLogin(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {
super("Login");
Container tela = getContentPane();
tela.setLayout(null);
fabricaDeEntidades=fabricaDeEntidades2;
gerenciador=gerenciador2;
rotulo1 = new JLabel("Usuário:");
rotulo2 = new JLabel("Senha:");
caixa1 = new JTextField();
caixa2 = new JTextField();
botao1 = new JButton("Acessar");
// coluna, linha, largura, altura
rotulo1.setBounds(21, 19, 47, 20);
caixa1.setBounds(78, 19, 90, 20);
botao1.setBounds(70,80, 100, 20);
rotulo2.setBounds(21, 50, 100, 20);
caixa2.setBounds(78, 50, 90, 20);
tela.add(rotulo1);
tela.add(caixa1);
tela.add(rotulo2);
tela.add(caixa2);
tela.add(botao1);
botao1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Persistir dados
// inclusão de um novo registro
Conexao con = new Conexao();
//Faz o select na base dados
if (caixa1.getText().equals(select.getSenha()) || caixa2.getText().equals(select.getUsuario())) {
JOptionPane.showMessageDialog(null,"usuário logado com sucesso");
new Menu(fabricaDeEntidades,gerenciador);
}
else{
JOptionPane.showMessageDialog(null, "erro ao efetuar login");
}
}
});
// setSize(largura, altura);
setSize(250, 150);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
fabricaDeEntidades = Persistence
.createEntityManagerFactory("TurmaN40PostgreSQL");
gerenciador = fabricaDeEntidades.createEntityManager();
EfetuarLogin app = new EfetuarLogin(fabricaDeEntidades, gerenciador);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
e deu esse erro aqui no eclipse
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at EfetuarLogin$1.actionPerformed(EfetuarLogin.java:67)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)