package BD;

import gerenciamento_acesso.Cliente;
import gerenciamento_acesso.Pessoa;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Cadastra {
	// esse insere to guardando em MySQL ou seja nun BD relacional
	// mais adiante vou implementar nun BD pra objetos Ex.:Hibernate
	// mas assim fica facil alterar passando a classe por parametro

	public boolean ins(Pessoa novo_cliente) throws SQLException {
		try {
			Connection con = ConnectionFactory.getConnection();
			PreparedStatement stmt = con.prepareStatement("CREATE TABLE "
					+ "contatos(`nome` VARCHAR( 255 ) NOT NULL ,"
					+ "`login` VARCHAR( 255 ) NOT NULL ,"
					+ "`pass` VARCHAR( 255 ) NOT NULL ,"
					+ "`email` VARCHAR( 255 ) NOT NULL ,"
					+ "`endereco` VARCHAR( 255 ) NOT NULL,"
					+ "PRIMARY KEY ( `login` ));");

			stmt.execute();
			stmt.close();

			PreparedStatement stmt2 = con
					.prepareStatement("insert into contatos"
							+ "(nome,login,pass,email,endereco) values "
							+ "(?,?,?,?,?)");

			stmt2.setString(1, novo_cliente.getNome());
			stmt2.setString(2, novo_cliente.getLogin());
			stmt2.setString(3, novo_cliente.getSenha());
			stmt2.setString(4, ((Cliente) novo_cliente).getE_mail());
			stmt2.setString(5, ((Cliente) novo_cliente).getEndereco());
			stmt2.execute();

			stmt2.close();
			con.close();
			return true;
		} catch (SQLException e) {
			try {
				Connection con = ConnectionFactory.getConnection();
				PreparedStatement stmt = con
						.prepareStatement("insert into contatos"
								+ "(nome,login,pass,email,endereco) values "
								+ "(?,?,?,?,?)");

				stmt.setString(1, novo_cliente.getNome());
				stmt.setString(2, novo_cliente.getLogin());
				stmt.setString(3, novo_cliente.getSenha());
				stmt.setString(4, ((Cliente) novo_cliente).getE_mail());
				stmt.setString(5, ((Cliente) novo_cliente).getEndereco());
				stmt.execute();

				stmt.close();
				con.close();
				return true;
			} catch (SQLException e1) {
				return false;
			}
		}

	}
}
