LS03-03-2: implement UserDB
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user