1
0

LS03-03-2: implement UserDB

This commit is contained in:
2021-06-15 16:24:06 +02:00
parent e8f044069f
commit 012a6208d8
@@ -1,10 +1,6 @@
package de.oszimt.ls.aliendefence.model.persistenceDB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import de.oszimt.ls.aliendefence.model.User;
import de.oszimt.ls.aliendefence.model.persistence.IUserPersistance;
@@ -12,8 +8,7 @@ import de.oszimt.ls.aliendefence.model.persistenceDB.AccessDB;
/**
* databaseconnection for userobjects, Story usermanagement
* @author Clara Zufall
* TODO finish this class
* @author Joel Baldauf
*/
public class UserDB implements IUserPersistance{
@@ -23,6 +18,47 @@ public class UserDB implements IUserPersistance{
this.dbAccess = dbAccess;
}
/**
* insert new user into database
*
* @param user userobject to be inserted into database
* @return lastKey
*/
public int createUser(User user) {
String sql = "INSERT INTO users (first_name, sur_name, birthday, street, house_number, postal_code, city, login_name, password, salary_expectations, marital_status, final_grade) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
int lastKey = -1;
try (Connection con = DriverManager.getConnection(this.dbAccess.getFullURL(), this.dbAccess.getUser(),
this.dbAccess.getPassword());
PreparedStatement statement = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);) {
//statement.setInt(1, level_id);
statement.setString(1, user.getFirst_name());
statement.setString(2, user.getSur_name());
statement.setDate(3, Date.valueOf(user.getBirthday()));
statement.setString(4, user.getStreet());
statement.setString(5, user.getHouse_number());
statement.setString(6, user.getPostal_code());
statement.setString(7, user.getCity());
statement.setString(8, user.getLoginname());
statement.setString(9, user.getPassword());
statement.setInt(10, user.getSalary_expectations());
statement.setString(11, user.getMarital_status());
statement.setDouble(12, user.getFinal_grade());
statement.execute();
ResultSet generatedKeys = statement.getGeneratedKeys();
if (generatedKeys.next()) {
lastKey = generatedKeys.getInt(1);
}
generatedKeys.close();
} catch (SQLException e) {
e.printStackTrace();
}
return lastKey;
}
/**
* read userdata by unique username
*
@@ -54,4 +90,51 @@ public class UserDB implements IUserPersistance{
return user;
}
/**
* update existing user
*
* @param user userobject to be updated
*/
public void updateUser (User user) {
String sql = "UPDATE users SET first_name = ?, sur_name = ?, birthday = ?, street = ?, house_number = ?, " +
"postal_code = ?, city = ?, login_name = ?, password = ?, salary_expectations = ?, marital_status = ?, final_grade = ? WHERE P_user_id = ?";
try (Connection con = DriverManager.getConnection(this.dbAccess.getFullURL(), this.dbAccess.getUser(),
this.dbAccess.getPassword()); PreparedStatement statement = con.prepareStatement(sql)) {
statement.setString(1, user.getFirst_name());
statement.setString(2, user.getSur_name());
statement.setDate(3, Date.valueOf(user.getBirthday()));
statement.setString(4, user.getStreet());
statement.setString(5, user.getHouse_number());
statement.setString(6, user.getPostal_code());
statement.setString(7, user.getCity());
statement.setString(8, user.getLoginname());
statement.setString(9, user.getPassword());
statement.setInt(10, user.getSalary_expectations());
statement.setString(11, user.getMarital_status());
statement.setDouble(12, user.getFinal_grade());
statement.setInt(13, user.getP_user_id());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* delete existing user
*
* @param user userobject to be deleted
*/
public void deleteUser (User user) {
String sql = "DELETE FROM users WHERE P_user_id = " + user.getP_user_id() + ";";
try (Connection con = DriverManager.getConnection(this.dbAccess.getFullURL(), this.dbAccess.getUser(),
this.dbAccess.getPassword()); Statement statement = con.createStatement()) {
statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
}