[java] sql pobieranie danych

0

mam 2 klasy ktore odpowiadaja za polaczenie i weryfikacje loginu. Chcialbym docelowo pobrac dane o: loginie hasle i rodzaju konta (np. admin, gosc, pracownik) zeby docelowo na nowej stronie otwierala sie informacja po uprzednim sprawdzeniu loginu i hasla: Witaj "Zdzislawie Kowalski, jestes zalogowany jako gosc na przyklad. Polaczenie z baza danych istnieje ale za nic w swiecie nie potrafie pobrac naraz tych 3 danych bo Od razu sie wszystko sypie..zalacze to przy czym utknelem..
klasa ktora sie laczy:


package database;
import java.io.*;
import java.sql.*;
import java.util.*;


public class ConnDB {
    
    public ResultSet res;
    public Statement stmt;
    public Connection conn;
    

    public ConnDB() {
    }
    
    public void connection() {
        String connUrl="jdbc:firebirdsql:127.0.0.1/3050:C:/Users/LeNDo/database/TEST.FDB"; 
        String user = "SYSDBA";
        String password = "masterkey";
        String error="";
        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conn = DriverManager.getConnection(connUrl, user, password);
            stmt = conn.createStatement();
        } catch (Exception e) {
            
        }
    }
    
    public ResultSet runSQL(String zapytanie) {
        try {
            res = stmt.executeQuery(zapytanie);
            return res;
        } catch (Exception e) {
            return null;
        }
    }
    
    public String nextString(String nazwaKolumny) {
        String wynik = "";
        
        try {
        res.next();
        wynik = res.getString(nazwaKolumny); 
        } 
        
        catch (SQLException e) {
           while (e != null) {
              e.printStackTrace();
              e = e.getNextException();
           }
        }
    return wynik;
    }
    
    public void acceptDB() {
        try {
            conn.commit();
        } catch (Exception e) {
           }
    }
    
    public void closeConnection() {
        try {
            stmt.close();
            conn.close();
        } catch (Exception e) {
    }
  }
}

klasa ktora odpowiada za logowanie:

package org.me.hello;

import database.ConnDB;

public class NameHandler {
    private String name;
       public NameHandler() {
    }

    public String getName() {
       String text = "";
       ConnDB connect = new ConnDB();
       connect.connection();
       connect.runSQL("SELECT IMIE, HASLO FROM NAME");
       text = connect.nextString("IMIE");
       connect.acceptDB();
       connect.closeConnection();
       if (name.equals(text)) {
       return "Zalogowany " + name + "asd" + text;
         
        } 
        else
        {
            return "Blad logowania " + name;
        }    
    }

    public void setName(String name) {
        this.name = name;
    }}

strona www na ktorej podaje sie dane:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
--%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

    <h1>JSP Page</h1>
    <h1>Entry Form</h1>
    <form name="Name Input Form" action="response.jsp" method="GET">
    Enter your name: <input type="text" name="name" value="" />
    Enter your pass: <input type="text" name="pass" value="" />
    <input type="submit" value="OK" /></form> 
    
    </body>
</html>

Na tej stronie storzylem dwa pola name i pass ale jesli zaczynam dodawac wszedzie zmienna pass i ja weryfikowac badz pobierac do innej zmiennej program sie sypie. Czy mozna jednym zapytaniem zweryfkowac login i haslo?

prosze o jakas wskazowke.. ucze sie dopiero javy a od 2 dni nie moge znalezc nigdzie podobnego problemu..
z gory dzieki i pozdrawiam

0

Jest po 2:00 i nie chcę mi się wnikać zabardzo w Twój kod. Jeżeli chodzi o logowanie zrób po prostu selecta z warunkiem WHERE login=? AND passw=?. A co do weryfikacji, wrzuć odpowiednie atrybuty do obiektu sesji. Pozdrawiam.

0

ok sprawdzanie mi dziala ale jak zrobic cos zeby admin byl przekierowany na swoja strone www, uzytkownik na swoja a gosc na swoja :/ czy w returnie mozna umiescic cos co przekieruje do innej strony niz np. response.jsp jak na zalaczonym obrazku? pozdrawiam

0

Stwórz klasę User, która będzie zwracana do jspa. W niej masz nazwę usera i możesz zapisać wszelkie inne potrzebne dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1