Focus mode

Araç Kiralama Projesi

Login İşlemleri

Bu bölümde uygulamada bir kullanıcının giriş yapabilmesi için kullanılan işlemler ele alınmaktadır. Bu işlemler, veri tabanındaki kullanıcı bilgilerini kontrol etme ve giriş yapma süreçlerini içeriyor.

Veri tabanındaki kullanıcı bilgilerini temsil eden User tablosunun entity sınıfını oluşturulur. Bu sınıfın alanları (fields) arasında id, username, password, ve role bulunmaktadır. User entity sınıfının içi aşağıdaki gibidir.

public class User {
  private int id;
  private String username;
  private String password;
  private String role;

public User() {
  }


  public User(int id, String username, String password, String role) {
    this.id = id;
    this.username = username;
    this.password = password;
    this.role = role;
  }

//Getter ve Setter Metodları
}

Veri tabanındaki User tablosuna örnek bir kullanıcı ekleyerek başlanabilir. Bu kullanıcı, username olarak "admin", password olarak "1234", ve role olarak "admin" değerlerini alıyor.

Daha sonra, kullanıcı girişi işlemlerini yönetmek üzere bir "UserManager" sınıfı oluşturulur. Bu sınıf, veri tabanı işlemlerini gerçekleştirmek üzere bir "UserDAO" (Data Access Object) sınıfı ile iletişim kuruyor.

UserDAO sınıfı, veritabanına bağlantı oluşturmayı sağlayan bir "connection" alanına sahip. Bu bağlantı "DB" sınıfından alınır.

public class UserDao {
  private final Connection con;

  public UserDao() {
    this.con = Db.getInstance();
  }

 public User findByLogin(String username, String password) {
    User obj = null;
    String query = "SELECT * FROM public.user WHERE user_name = ? AND user_pass = ?";
    try {
      PreparedStatement pr = this.con.prepareStatement(query);
      pr.setString(1, username);
      pr.setString(2, password);
      ResultSet rs = pr.executeQuery();
      if (rs.next()) {
        obj = this.match(rs);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return obj;
  }

//Diğer User DAO metotları

}

Veri tabanındaki kullanıcı bilgilerini kontrol etmek ve kullanıcı nesnesini döndürmek için "findByLogin" metodu yazılır. Bu metot, kullanıcı adı ve şifre parametreleri alarak veritabanında ilgili kullanıcıyı sorguluyor.

UserManager sınıfı içinde, kullanıcı girişi işlemini yöneten bir "fingByLogin" metodu tanımlanır. Bu metot içerisinden UserDao’daki findByLogin işlemi döndürülür.

public class UserManager {
  private final UserDao userDao;

  public UserManager() {
    this.userDao = new UserDao();
  }
  public User findByLogin(String username, String password) {
    // farklı işlemler yapabiliriz
    return this.userDao.findByLogin(username, password);
  }
}

Son olarak, bir kullanıcı arayüzü ile kullanıcının giriş yapmasını sağlamak üzere bir "main" metodunu yazılır. Bu metod, kullanıcıdan kullanıcı adı ve şifre alıp "findByLogin" metodunu çağırarak işlemi gerçekleştiriyor.

Bu şekilde, kullanıcı girişi işlemlerini kontrol eden bir yapı kurulmuş olur.

Comments

You need to enroll in the course to be able to comment!