diff --git a/Java/TodoListApp/src/DatabaseManager.java b/Java/TodoListApp/src/DatabaseManager.java index 7f90ccf..2105d8b 100644 --- a/Java/TodoListApp/src/DatabaseManager.java +++ b/Java/TodoListApp/src/DatabaseManager.java @@ -59,4 +59,3 @@ public class DatabaseManager { } } } - diff --git a/Java/TodoListApp/src/TodoListManager.java b/Java/TodoListApp/src/TodoListManager.java index 80bc1dc..dedf5b4 100644 --- a/Java/TodoListApp/src/TodoListManager.java +++ b/Java/TodoListApp/src/TodoListManager.java @@ -1,118 +1,61 @@ package TodoListApp.src; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.ArrayList; + +import java.sql.SQLException; import java.util.List; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -// 待办事项管理类 -class TodoListManager { - private final List todoList; - private int nextId; - // private DatabaseManager dbManager; // 暂时注释掉 + +public class TodoListManager { + private DatabaseManager dbManager; public TodoListManager() { - todoList = new ArrayList<>(); - nextId = 1; // 起始编号 - // dbManager = new DatabaseManager(); // + dbManager = new DatabaseManager(); } - // 添加待办事项 - public void addTodo(String description) throws EmptyDescriptionException{ //同时声明可能抛出的异常类型 - if(description == null || description.trim().isEmpty()){ - EmptyDescriptionException e = new EmptyDescriptionException("待办事项的描述不能为空。"); - throw e; + public void addTodo(String description) throws EmptyDescriptionException { + if (description == null || description.trim().isEmpty()) { + throw new EmptyDescriptionException("待办事项描述不能为空。"); + } + try { + dbManager.addTodo(description); + System.out.println("待办事项已添加。"); + } catch (SQLException e) { + System.out.println("添加待办事项时发生错误:" + e.getMessage()); } - TodoItem item = new TodoItem(nextId++, description); - todoList.add(item); - System.out.println("待办事项已添加: " + item); } - // 列出所有待办事项 public void listTodos() { - if (todoList.isEmpty()) { - System.out.println("当前没有待办事项。"); - return; - } - System.out.println("\n===== 待办事项列表 ====="); - for (TodoItem item : todoList) { - System.out.println(item); + try { + List todos = dbManager.getAllTodos(); + if (todos.isEmpty()) { + System.out.println("没有待办事项。"); + } else { + for (TodoItem todo : todos) { + System.out.println(todo); + } + } + } catch (SQLException e) { + System.out.println("获取待办事项列表时发生错误:" + e.getMessage()); } } - // 删除指定编号的待办事项 - public void removeTodo(int id) throws TodoNotFoundException{ - boolean removed = false; - for (TodoItem item : todoList) { - if (item.getId() == id) { - todoList.remove(item); - System.out.println("已删除待办事项: " + item); - removed = true; - break; - } - } - if (!removed) { - throw new TodoNotFoundException("未找到编号为 " + id + " 的待办事项。"); - //System.out.println("未找到编号为 " + id + " 的待办事项。"); + public void removeTodo(int id) throws TodoNotFoundException { + try { + dbManager.removeTodo(id); + System.out.println("待办事项已删除。"); + } catch (SQLException e) { + throw new TodoNotFoundException("未找到ID为 " + id + " 的待办事项。"); } } public void markAsCompleted(int id) { - TodoItem item = null; - for (TodoItem todo : todoList) { - if (todo.getId() == id) { - item = todo; - break; - } - - } - if (item != null) { - if (!item.isCompleted()) { - item.setCompleted(true); - System.out.println("待办事项已标记为完成: " + item); - } else { - System.out.println("待办事项已完成,无需重复标记。"); - } - } - else { - System.out.println("未找到编号为:" + id + " 的待办事项。"); - } - } - - public void saveToFile(String filename){ - try { - File file = new File(filename); - FileOutputStream fos = new FileOutputStream(file); - - for (TodoItem item : todoList) { - String line = item.getId() + ":" + item.getDescription() + "\n"; - fos.write(line.getBytes()); - } - System.out.println("待办事项已经保存到文件:" + filename); - - fos.close(); - } - catch (IOException e){ - System.out.println("待办事项保存失败:" + e.getMessage()); + dbManager.markAsCompleted(id); + System.out.println("待办事项已标记为完成。"); + } catch (SQLException e) { + System.out.println("标记待办事项时发生错误:" + e.getMessage()); } } - private void backupToFile(String backupFilename) { - LocalDateTime now = LocalDateTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"); - String timestamp = now.format(formatter); - String fullBackupFilename = backupFilename + "_" + timestamp + ".bak"; - - try (FileOutputStream fos = new FileOutputStream(new File(fullBackupFilename))) { - for (TodoItem item : todoList) { - String line = item.getId() + ":" + item.getDescription() + ":" + (item.isCompleted() ? "完成" : "未完成") + "\n"; - fos.write(line.getBytes()); - } - System.out.println("待办事项已备份到文件:" + fullBackupFilename); - } catch (IOException e) { - System.out.println("待办事项备份失败:" + e.getMessage()); - } + public void saveToFile(String filename) { + System.out.println("数据已保存在数据库中,无需额外保存到文件。"); } }