import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

public class Person {
	private String name;
	private Vector projekte = new Vector();

	public void setName(String name) {
		Statement stmt = DBConnector.getConnectedStatement();
		try {
			ResultSet rs =
				stmt.executeQuery(
					"SELECT count(*) FROM Person WHERE name='"
						+ this.name
						+ "';");
			rs.next();
			if (rs.getDouble(1) < 1) {
				System.out.println(
					"Database entry for person does not exist and will be created");
				stmt.executeUpdate(
					"INSERT INTO Person (name) VALUES('" + name + "')");
			} else {
				System.out.println(
					"Database entry for person exists and will be updated");
				stmt.executeUpdate(
					"UPDATE Person SET name='"
						+ name
						+ "' where name='"
						+ this.name
						+ "';");
			}
		} catch (SQLException e) {
			System.out.println("Cannot access database");
			e.printStackTrace();
		}
		this.name = name;
	}
	public void setGeburtsdatum(String gebDat) {
		Statement stmt = DBConnector.getConnectedStatement();
		try {
			System.out.println("Database entry (bdate) will be updated");
			stmt.executeUpdate(
				"UPDATE Person SET bdate='"
					+ gebDat
					+ "' WHERE name='"
					+ this.name
					+ "';");
		} catch (SQLException e) {
			System.out.println("Cannot access database");
			e.printStackTrace();
		}
	}
	public String getGeburtsdatum() {
		Statement stmt = DBConnector.getConnectedStatement();
		ResultSet rs;
		String result = "";
		try {
			rs =
				stmt.executeQuery(
					"SELECT bdate FROM Person WHERE name='" + name + "';");
			rs.next();
			result = rs.getString(1);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}
	public String getName() {
		return name;
	}
	public void addProjekt(Projekt p) {
		Statement stmt = DBConnector.getConnectedStatement();
		try {
			stmt.executeUpdate(
				"INSERT INTO WorksOn VALUES('"
					+ this.name
					+ "','"
					+ p.getName()
					+ "');");
		} catch (SQLException e) {
			System.out.println("Cannot access database");
			e.printStackTrace();
		}
	}
	public Vector getAllProjekt() {
		Vector projekte = new Vector();

		return projekte;
	}
	public static Person getPersonForName(String name) {
		Statement stmt = DBConnector.getConnectedStatement();
		ResultSet rs;
		Person p = new Person();
		try {
			rs =
				stmt.executeQuery(
					"SELECT bdate FROM Person WHERE name='" + name + "';");
			rs.next();
			p.name = name;
		} catch (SQLException e) {
			System.out.println("Cannot access database");
			e.printStackTrace();
		}
		return p;
	}
	public String toString() {
		return ("(name: "+name+", bdate: "+this.getGeburtsdatum()+")");
	}
}
