java家庭财务管理系统
时间: 2023-12-03 15:40:07 浏览: 42
Java家庭财务管理系统是一种基于Java Web和MySQL的应用程序,旨在帮助用户管理家庭财务。以下是一个基于Spring Boot的Java家庭财务管理系统的示例:
该系统具有以下功能:
- 用户登录和注册
- 记录收入和支出
- 显示收入和支出的统计信息
- 编辑和删除收入和支出记录
该系统的技术栈包括Java、Spring Boot、SSM、MySQL、Maven、Thymeleaf和HTML。其中,Spring Boot是一个快速开发框架,可以帮助开发人员快速构建Web应用程序。SSM是Spring、Spring MVC和MyBatis的缩写,是一种常用的Java Web开发框架。MySQL是一种流行的关系型数据库管理系统。Maven是一个Java项目管理工具,可以帮助开发人员管理项目依赖关系。Thymeleaf是一种Java模板引擎,可以帮助开发人员构建动态Web页面。
以下是该系统的一些示例代码:
1. 记录收入和支出
```java
@Entity
@Table(name = "record")
public class Record {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String type;
private Double amount;
private String category;
private String note;
private Date date;
// getters and setters
}
@Controller
public class RecordController {
@Autowired
private RecordRepository recordRepository;
@GetMapping("/record")
public String recordForm(Model model) {
model.addAttribute("record", new Record());
return "record";
}
@PostMapping("/record")
public String recordSubmit(@ModelAttribute Record record) {
recordRepository.save(record);
return "redirect:/record";
}
}
<form action="#" th:action="@{/record}" th:object="${record}" method="post">
<input type="text" th:field="*{type}" placeholder="Type"/>
<input type="text" th:field="*{amount}" placeholder="Amount"/>
<input type="text" th:field="*{category}" placeholder="Category"/>
<input type="text" th:field="*{note}" placeholder="Note"/>
<input type="date" th:field="*{date}" placeholder="Date"/>
<button type="submit">Submit</button>
</form>
```
2. 显示收入和支出的统计信息
```java
@Repository
public interface RecordRepository extends JpaRepository<Record, Long> {
@Query("SELECT SUM(r.amount) FROM Record r WHERE r.type = 'income'")
Double findTotalIncome();
@Query("SELECT SUM(r.amount) FROM Record r WHERE r.type = 'expense'")
Double findTotalExpense();
}
@Controller
public class StatisticController {
@Autowired
private RecordRepository recordRepository;
@GetMapping("/statistic")
public String statistic(Model model) {
Double totalIncome = recordRepository.findTotalIncome();
Double totalExpense = recordRepository.findTotalExpense();
model.addAttribute("totalIncome", totalIncome);
model.addAttribute("totalExpense", totalExpense);
return "statistic";
}
}
<div>
<p>Total Income: <span th:text="${totalIncome}"></span></p>
<p>Total Expense: <span th:text="${totalExpense}"></span></p>
</div>
```
3. 编辑和删除收入和支出记录
```java
@Controller
public class RecordController {
@Autowired
private RecordRepository recordRepository;
@GetMapping("/record/{id}/edit")
public String recordEditForm(@PathVariable Long id, Model model) {
Record record = recordRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid record id:" + id));
model.addAttribute("record", record);
return "record-edit";
}
@PostMapping("/record/{id}/edit")
public String recordEditSubmit(@PathVariable Long id, @ModelAttribute Record record) {
record.setId(id);
recordRepository.save(record);
return "redirect:/record";
}
@GetMapping("/record/{id}/delete")
public String recordDelete(@PathVariable Long id) {
recordRepository.deleteById(id);
return "redirect:/record";
}
}
<a th:href="@{/record/{id}/edit(id=${record.id})}">Edit</a>
<a th:href="@{/record/{id}/delete(id=${record.id})}">Delete</a>
```