LS03-03-2: implement UserDB
This commit is contained in:
@@ -1,10 +1,6 @@
|
|||||||
package de.oszimt.ls.aliendefence.model.persistenceDB;
|
package de.oszimt.ls.aliendefence.model.persistenceDB;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.*;
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
import de.oszimt.ls.aliendefence.model.User;
|
import de.oszimt.ls.aliendefence.model.User;
|
||||||
import de.oszimt.ls.aliendefence.model.persistence.IUserPersistance;
|
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
|
* databaseconnection for userobjects, Story usermanagement
|
||||||
* @author Clara Zufall
|
* @author Joel Baldauf
|
||||||
* TODO finish this class
|
|
||||||
*/
|
*/
|
||||||
public class UserDB implements IUserPersistance{
|
public class UserDB implements IUserPersistance{
|
||||||
|
|
||||||
@@ -23,6 +18,47 @@ public class UserDB implements IUserPersistance{
|
|||||||
this.dbAccess = dbAccess;
|
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
|
* read userdata by unique username
|
||||||
*
|
*
|
||||||
@@ -54,4 +90,51 @@ public class UserDB implements IUserPersistance{
|
|||||||
return user;
|
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