DateFormatter.FORMATTER.parse(resultSet.getString(3)),
resultSet.getString(4),
getPerformerWithName(resultSet.getString(6)),
getCustomerWithName(resultSet.getString(5))
);
JobWrapper wrapper = new JobWrapper(job);
result.add(wrapper);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
@Nullable
public Customer getCustomerWithName(String string) {
Customer customer = null;
String query = "SELECT * FROM " + TABLE_CUSTOMERS + " WHERE " + COLUMN_CUSTOMERS_NAME + " = '" + string + "';";
try (Connection connection = connect()) {
ResultSet resultSet = connection.createStatement().executeQuery(query);
while (resultSet.next()) {
customer = new Customer(
resultSet.getString(2),
resultSet.getString(3)
);
}
} catch (SQLException e) {
e.printStackTrace();
}
return customer;
}
@Nullable
public Performer getPerformerWithName(String string) {
Performer performer = null;
String query = "SELECT * FROM " + TABLE_PERFORMERS + " WHERE " + COLUMN_PERFORMERS_NAME + " = '" + string + "';";
try (Connection connection = connect()) {
ResultSet resultSet = connection.createStatement().executeQuery(query);
while (resultSet.next()) {
performer = new Performer(
resultSet.getString(2),
resultSet.getString(3)
);
}
} catch (SQLException e) {
e.printStackTrace();
}
return performer;
}
private Db() {
createTableIfNotExists();
}
public static Db getInstance() {
if (sManager == null) {
sManager = new Db();
}
return sManager;
}
private Connection connect() {
try {
Class.forName(JDBCDriver);
Connection connection = DriverManager.getConnection(urlPart + filePath);
return connection;
} catch (ClassNotFoundException e) {
System.err.println("Не удалось найти драйвер для подключения к базе данных: " + e.getMessage());
e.printStackTrace();
return null;
} catch (SQLException e) {
System.err.println("Не удалось подключиться: " + e.getMessage());
e.printStackTrace();
return null;
}
}
private void createTableIfNotExists() {
String query =
"CREATE TABLE IF NOT EXISTS " + TABLE_JOBS + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_JOB_CREATING_DATE + " TEXT, " +
COLUMN_JOB_DEADLINE_DATE + " TEXT, " +
COLUMN_JOB_THEME + " TEXT, " +
COLUMN_JOB_CUSTOMER_NAME + " TEXT, " +
COLUMN_JOB_PERFORMER_NAME + " TEXT);";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(query);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + query);
e.printStackTrace();
}
String customersQuery =
"CREATE TABLE IF NOT EXISTS " + TABLE_CUSTOMERS + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_CUSTOMERS_NAME + " TEXT, " +
COLUMN_CUSTOMERS_PASS + " TEXT);";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(customersQuery);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + customersQuery);
e.printStackTrace();
}
String performersQuery =
"CREATE TABLE IF NOT EXISTS " + TABLE_PERFORMERS + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_PERFORMERS_NAME + " TEXT, " +
COLUMN_PERFORMERS_PASS + " TEXT);";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(performersQuery);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + performersQuery);
e.printStackTrace();
}
String initialQueryC1 = "INSERT INTO " + TABLE_CUSTOMERS + " (" +
COLUMN_CUSTOMERS_NAME + ", " +
COLUMN_CUSTOMERS_PASS + ") VALUES ('c1', 'c1p');";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(initialQueryC1);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + initialQueryC1);
e.printStackTrace();
}
String initialQueryC2 = "INSERT INTO " + TABLE_CUSTOMERS + " (" +
COLUMN_CUSTOMERS_NAME + ", " +
COLUMN_CUSTOMERS_PASS + ") VALUES ('c2', 'c2p');";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(initialQueryC2);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + initialQueryC2);
e.printStackTrace();
}
String initialQueryP1 = "INSERT INTO " + TABLE_PERFORMERS + " (" +
COLUMN_PERFORMERS_NAME + ", " +
COLUMN_PERFORMERS_PASS + ") VALUES ('p1', 'p1p');";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(initialQueryP1);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + initialQueryP1);
e.printStackTrace();
}
String initialQueryP2 = "INSERT INTO " + TABLE_PERFORMERS + " (" +
COLUMN_PERFORMERS_NAME + ", " +
COLUMN_PERFORMERS_PASS + ") VALUES ('p2', 'p2p');";
try(Connection connect = connect()) {
Statement statement = connect.createStatement();
statement.executeUpdate(initialQueryP2);
} catch (SQLException e) {
System.err.println("ERROR IN QUERY: " + initialQueryP2);
e.printStackTrace();
}
}
}
public class Job {
private Date mCreatingDate;
private Date mDeadlineDate;
private String mTheme;
private Performer mPerformer;
private Customer mCustomer;
public Job(Date creatingDate, Date deadlineDate, String theme, Performer performer, Customer customer) {
setCreatingDate(creatingDate);
setDeadlineDate(deadlineDate);
setTheme(theme);
setPerformer(performer);
setCustomer(customer);
}
public Date getCreatingDate() {
return mCreatingDate;
}
public void setCreatingDate(Date creatingDate) {
mCreatingDate = creatingDate;
}
public Date getDeadlineDate() {
return mDeadlineDate;
}
public void setDeadlineDate(Date deadlineDate) {
mDeadlineDate = deadlineDate;
}
public String getTheme() {
return mTheme;
}
public void setTheme(String theme) {
mTheme = theme;
}
public Performer getPerformer() {
return mPerformer;
}
public void setPerformer(Performer performer) {
mPerformer = performer;
}
public Customer getCustomer() {
return mCustomer;
}
ublic void setCustomer(Customer customer) {
mCustomer = customer;
}
}
public class JobWrapper {
private SimpleStringProperty creatingTimestamp;
private SimpleStringProperty theme;
private SimpleStringProperty customerName;
private SimpleStringProperty deadline;
private Job mJob;
public JobWrapper(Job job) {
creatingTimestamp = new SimpleStringProperty(DateFormatter.FORMATTER.format(job.getCreatingDate()));
theme = new SimpleStringProperty(job.getTheme());
customerName = new SimpleStringProperty(job.getCustomer().getName());
deadline = new SimpleStringProperty(DateFormatter.FORMATTER.format(job.getDeadlineDate()));
mJob = job;
}
public String getCreatingTimestamp() {
return creatingTimestamp.get();
}
public void setCreatingTimestamp(String newValue) {
creatingTimestamp.set(newValue);
}
public String getTheme() {
return theme.get();
}
public void setTheme(String newValue) {
theme.set(newValue);
}
public String getCustomerName() {
return customerName.get();
}
public void setCustomerName(String newValue) {
customerName.set(newValue);
}
public String getDeadline() {
return deadline.get();
}
public void setDeadline(String newValue) {
deadline.set(newValue);
}
public Job getJob() {
return mJob;
}
}
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Authorization.fxml"));
primaryStage.setTitle("Задачи 2.0");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
public class Performer extends User {
public Performer(String name, String password) {
super(name, password);
}
}
public abstract class User {
private String mName;
private String mPassword;
public User(String name, String password) {
mName = name;
mPassword = password;
}
public String getName() {
return mName;
}
public void setName(String name) {
this.mName = name;
}
public String getPassword() {
return mPassword;
}
public void setPassword(String password) {
this.mPassword = password;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof User) {
User user = (User) obj;
return mName.equals(user.mName) && mPassword.equals(user.mPassword);
}
return false;
}
@Override
public int hashCode() {
return mName.hashCode() + mPassword.hashCode();
}
}