terça-feira, 15 de setembro de 2015

CCT0051 DESEV SIST WEB

Conteúdos abordados:

- JDBC;
- Banco de dados na linguagem java;
- Uso do NetBeans para gerência do banco;
- Servlet para listagem de dados.

Agora, colabore com a resolução do exemplo-código!


5 comentários:

  1. Classe responsável pela conexão ao banco:

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

    public class DBConnection {

    final private String driver = "com.mysql.jdbc.Driver";
    final private String url = "jdbc:mysql://localhost:3306/bddsi";
    final private String user = "root";
    final private String password = "root";

    public Connection getMyDBConnection() throws ClassNotFoundException, SQLException{
    Class.forName(driver);
    return DriverManager.getConnection(url, user, password);
    }
    }

    JavaBeans referente a tabela USER:

    public class User implements java.io.Serializable{
    private int id_user;
    private String login;
    private String password;
    private String address;

    public int getId_user() {
    return id_user;
    }

    public void setId_user(int id_user) {
    this.id_user = id_user;
    }

    public String getLogin() {
    return login;
    }

    public void setLogin(String login) {
    this.login = login;
    }

    public String getPassword() {
    return password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public String getAddress() {
    return address;
    }

    public void setAddress(String address) {
    this.address = address;
    }

    Classe de persistência:

    import Conector.DBConnection;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.LinkedList;
    import java.util.List;

    public class UsersDao extends DBConnection {

    Connection cx;

    public UsersDao() throws SQLException, ClassNotFoundException {
    this.cx = getMyDBConnection();
    }

    public UsersDao(Connection cx) {
    this.cx = cx;
    }

    public User getUser(String nome) throws SQLException {
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
    pst = cx.prepareStatement("select * from users where login = ?");
    pst.setString(1, nome);
    rs = pst.executeQuery();
    if (rs.next()) {
    User usr = getUserFromSQL(rs);
    return usr;
    }
    } finally {
    pst.close();
    rs.close();
    }
    return null;
    }

    public boolean ehUserEPasswordValido(String username, String password) throws SQLException {
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
    pst = cx.prepareStatement("select * from users where login = ? and password = ?");
    pst.setString(1, username);
    pst.setString(2, password);
    rs = pst.executeQuery();
    if (rs.next()) {
    return true;
    }
    } finally {
    pst.close();
    rs.close();
    }
    return false;
    }
    public List getListaDeUsers()throws SQLException{
    List returned = new LinkedList();
    Statement st = null;
    ResultSet rs = null;
    try{
    st = cx.createStatement();
    rs = st.executeQuery("select * from users");
    while (rs.next()) {
    returned.add(getUserFromSQL(rs));
    }
    }finally{
    st.close();
    rs.close();
    }
    return returned;
    }

    public User getUserFromSQL(ResultSet rs)throws SQLException{
    User returned = new User();
    returned.setId_user(rs.getInt("id_user"));
    returned.setLogin(rs.getString("login"));
    returned.setPassword(rs.getString("password"));
    returned.setAddress(rs.getString("address"));
    return returned;
    }

    }

    ResponderExcluir
  2. Servlet:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    ClientesControl ctlClientes = new ClientesControl();

    Clientes cliente = new Clientes();
    cliente.setName(request.getParameter("name"));
    cliente.setEndereco(request.getParameter("endereco"));
    cliente.setEmail(request.getParameter("email"));

    try {
    if (!ctlClientes.addClientes(cliente)) {
    response.sendRedirect("erro.jsp");
    return;
    }
    } catch (SQLException ex) {
    Logger.getLogger(AddClienteServlet.class.getName()).log(Level.SEVERE);
    }
    }

    response.sendRedirect("clientes.jsp");
    }

    ResponderExcluir
  3. DBConnection.java

    package projetoDSI.dao;

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


    public abstract class DBConnection {


    //Conexão MySQL
    final private String driver = "com.mysql.jdbc.Driver";
    final private String url = "jdbc:mysql://localhost:3306/dbDsi";
    final private String user = "root";
    final private String password = "root";

    public Connection getMyDBConnection() throws ClassNotFoundException, SQLException{

    Class.forName(driver);
    return DriverManager.getConnection(url, user,password);

    }

    }

    UsersDao.java


    package projetoDSI.dao;

    import java.sql.*;
    import java.util.*;

    public class UsersDao extends DBConnection {
    Connection cx;

    public UsersDao() throws SQLException, ClassNotFoundException{
    this.cx = getMyDBConnection();
    }

    public UsersDao(Connection cx){
    this.cx = cx;
    }

    public User getUser(String nome) throws SQLException{
    PreparedStatement pst = null;
    ResultSet rs = null;

    try{
    pst = cx.prepareStatement("select * from users where login = ?");
    pst.setString(1,nome);
    rs = pst.executeQuery();
    if (rs.next()){
    User usr = getUser(rs);
    return usr;
    }
    }
    finally{
    pst.close();
    rs.close();
    }
    return null;
    }

    public boolean isValidUserAndPassword (String username, String password) throws SQLException {
    PreparedStatement pst = null;
    ResultSet rs = null;

    try{
    pst = cx.prepareStatement("select * from users where login = ? and password = ?");
    pst.setString(1,username);
    pst.setString(1,password);
    rs = pst.executeQuery();
    if (rs.next()){
    return true;
    }
    }
    finally{
    pst.close();
    rs.close();
    }
    return false;
    }

    ResponderExcluir
  4. public List getListOfUsers() throws SQLException{
    List returned = new LinkedList();
    Statement st = null;
    ResultSet rs = null;

    try{
    st = cx.createStatement();
    rs = st.executeQuery("select * from users");

    while (rs.next()){
    returned.add(getUserFromSQL(rs));
    }
    }

    finally {
    st.close();
    rs.close();
    }
    return returned;
    }

    private User getUserFromSQL (ResultSet rs) throws SQLException {
    User returned = new User();
    returned.setId_user (rs.getInt("iduser"));
    returned.setLogin (rs.getString("login"));
    returned.setPassword(rs.getString("password"));
    returned.setAddress(rs.getString("address"));
    return returned;
    }
    }




    User.java



    package projetoDSI.dao;


    public class User implements java.io.Serializable{
    private int iduser;
    private String login;
    private String password;
    private String address;


    public int getId_user() {
    return iduser;
    }


    public void setId_user(int iduser) {
    this.iduser = iduser;
    }


    public String getLogin() {
    return login;
    }

    public void setLogin(String login) {
    this.login = login;
    }

    public String getPassword() {
    return password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public String getAddress() {
    return address;
    }

    public void setAddress(String address) {
    this.address = address;
    }

    }


    Servlet


    package projetoDSI.dao;

    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    WebServlet(name = "cliServlet", urlPatterns = {"/cliServlet"})
    public class cliServlet extends HttpServlet {


    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");

    cliServlet ctlUser =new cliServlet();

    User u = new User();

    u.setLogin(request.getParameter("login"));
    u.setPassword(request.getParameter("password"));
    u.setAddress(request.getParameter("address"));


    try {
    if (!ctlUser.addUser (u)){
    response.sendRedirect ("error.jsp");
    return;

    }

    catch (SQLException ex){
    Logger.getLogger(AddcliServlet.class).getName()).log(Level.SEVERE, null, ex));
    }

    response.sendRedirect("Usuarios.jsp");
    }
    }


    }

    ResponderExcluir
  5. Bom dia a todos, esta é uma alternativa mais fácil e funcional do problema.

    Estrutura dos pacote:
    pacotes de Códigos
    --Servlet
    --br.com.vander.modelo
    --br.com.vander.bean

    //Servlet

    package ServletLogin;

    import br.com.vander.model.bean.Usuario;
    import br.com.vander.model.dao.DaoUsuario;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;


    @WebServlet(name = "ControllerServlet", urlPatterns = {"/ControllerServlet"})
    public class ControllerServlet extends HttpServlet {



    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");

    }


    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    processRequest(request, response);
    }


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    processRequest(request, response);

    HttpSession session = request.getSession(); //obtem a sessao do usuario, caso exista

    Usuario user = null;
    String loginForm = request.getParameter("usuario"); // Pega o Login vindo do formulario
    String senhaForm = request.getParameter("senha"); //Pega a senha vinda do formulario

    try {
    DaoUsuario dao = new DaoUsuario(); //cria uma instancia do DAO usuario
    user = dao.getUsuario(loginForm, senhaForm);
    }
    catch ( Exception e ){

    }

    //se nao encontrou usuario no banco, redireciona para a pagina de erro!
    if ( user == null ) {
    session.invalidate();
    request.getRequestDispatcher("tela2.jsp" ).forward(request, response);
    }
    else{
    //se o dao retornar um usuario, coloca o mesmo na sessao
    session.setAttribute("user", user);
    request.getRequestDispatcher("tela3.jsp").forward(request, response);
    }
    }


    @Override
    public String getServletInfo() {
    return "Short description";
    }//

    }

    O resto já esta no exemplo citado em aula vlw

    ResponderExcluir

 

Charles Maquiavel

"Não há nada mais difícil do que se ter em mãos algo novo, nem nada mais perigoso do que conduzir por caminhos inéditos, ou incertos quanto ao sucesso, ao se tomar a dianteira na introdução de uma nova ordem das coisas."

Martha Gabriel

"Sábios nos encantam e estúpidos nos cansam. Os meios digitais apenas ampliaram o poder de ambos, mas a escolha de quem ouvir ainda é nossa."

Sou + vc na Estácio

A Universidade Estácio de Sá está com matriculas abertas para nosso próximo semestre 2016.3 EAD. Oferece 25% de desconto durante todo o primeiro semestre letivo. Não perca essa oportunidade!
Aproveite uma degustação, diversos cursos livres e grátis. Basta acessar o link: http://experimenteseusonho.com.br/Portal/Modules/Login/
 
Blogger Templates