用springBoot设计一个简易系统,要求对工资信息进行常规管理,具体管理功能需要包括工资信息查找(通过输入信息做精确或模糊查询,且要使用关联映射功能)、添加工资信息、修改工资信息及删除工资信息(含批量删除)等。 (2)系统从登录界面(需提供有效的注册链接)开始,登录成功后跳转至工资信息管理界面(可看作系统主界面),主界面显示系统的主要实现模块(可按超链接展示)及用户信息(含注销)等。 (3)点击某管理模块链接后,进入该模块的管理页面。模块管理页面需要显示被管理的所有信息(可按表格方式显示),同时在合适位置提供按搜索关键字查询、添加、删除(提供多选删除)和修改等操作链接(或按钮)。
时间: 2024-01-09 13:05:46 浏览: 99
springboot工资管理
好的,我可以为你提供一些设计思路和代码实现的示例。
首先,你需要创建一个Spring Boot项目,并添加所需的依赖。在这个项目中,你需要创建一个数据库表来存储工资信息,例如:
```
CREATE TABLE salary (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
amount DECIMAL(10, 2),
payment_date DATE
);
```
然后,你可以创建一个实体类来映射这个表:
```java
@Entity
@Table(name = "salary")
public class Salary {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private BigDecimal amount;
@Column(name = "payment_date")
private LocalDate paymentDate;
// getters and setters
}
```
接下来,你可以创建一个Repository来操作这个表:
```java
@Repository
public interface SalaryRepository extends JpaRepository<Salary, Long> {
List<Salary> findByNameContaining(String name);
}
```
这个Repository中的`findByNameContaining`方法可以用来实现模糊查询功能。
然后,你可以创建一个Controller来处理请求:
```java
@Controller
public class SalaryController {
@Autowired
private SalaryRepository salaryRepository;
@GetMapping("/")
public String index(Model model) {
model.addAttribute("salaries", salaryRepository.findAll());
return "index";
}
@GetMapping("/search")
public String search(@RequestParam("name") String name, Model model) {
model.addAttribute("salaries", salaryRepository.findByNameContaining(name));
return "index";
}
@GetMapping("/add")
public String add(Model model) {
model.addAttribute("salary", new Salary());
return "add";
}
@PostMapping("/add")
public String add(@ModelAttribute Salary salary) {
salaryRepository.save(salary);
return "redirect:/";
}
@GetMapping("/edit/{id}")
public String edit(@PathVariable Long id, Model model) {
Optional<Salary> salary = salaryRepository.findById(id);
if (salary.isPresent()) {
model.addAttribute("salary", salary.get());
} else {
model.addAttribute("salary", new Salary());
}
return "edit";
}
@PostMapping("/edit")
public String edit(@ModelAttribute Salary salary) {
salaryRepository.save(salary);
return "redirect:/";
}
@PostMapping("/delete")
public String delete(@RequestParam("ids") List<Long> ids) {
salaryRepository.deleteAllById(ids);
return "redirect:/";
}
}
```
这个Controller中的`index`方法用来显示所有的工资信息,`search`方法用来实现关键字查询功能,`add`方法用来显示添加工资信息的页面,`edit`方法用来显示修改工资信息的页面,`delete`方法用来实现批量删除功能。
最后,你需要创建一些HTML页面来显示数据和处理用户的输入。这里只提供简单的示例代码:
`index.html`:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Salary Management</title>
</head>
<body>
<h1>Salary Management</h1>
<form method="get" action="/search">
<input type="text" name="name">
<button type="submit">Search</button>
</form>
<br>
<a href="/add">Add</a>
<form method="post" action="/delete">
<button type="submit">Delete</button>
<table>
<thead>
<tr>
<th><input type="checkbox" onclick="checkAll(this)"></th>
<th>Name</th>
<th>Amount</th>
<th>Payment Date</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<tr th:each="salary : ${salaries}">
<td><input type="checkbox" name="ids" th:value="${salary.id}"></td>
<td th:text="${salary.name}"></td>
<td th:text="${salary.amount}"></td>
<td th:text="${salary.paymentDate}"></td>
<td><a th:href="@{/edit/{id}(id=${salary.id})}">Edit</a></td>
</tr>
</tbody>
</table>
</form>
<script>
function checkAll(checkbox) {
var checkboxes = document.getElementsByName('ids');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = checkbox.checked;
}
}
</script>
</body>
</html>
```
`add.html`:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add Salary</title>
</head>
<body>
<h1>Add Salary</h1>
<form method="post" action="/add">
<label>Name: </label>
<input type="text" name="name"><br>
<label>Amount: </label>
<input type="text" name="amount"><br>
<label>Payment Date: </label>
<input type="text" name="paymentDate"><br>
<button type="submit">Save</button>
</form>
</body>
</html>
```
`edit.html`:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Edit Salary</title>
</head>
<body>
<h1>Edit Salary</h1>
<form method="post" action="/edit">
<input type="hidden" name="id" th:value="${salary.id}">
<label>Name: </label>
<input type="text" name="name" th:value="${salary.name}"><br>
<label>Amount: </label>
<input type="text" name="amount" th:value="${salary.amount}"><br>
<label>Payment Date: </label>
<input type="text" name="paymentDate" th:value="${salary.paymentDate}"><br>
<button type="submit">Save</button>
</form>
</body>
</html>
```
这些HTML页面中的Thymeleaf表达式用来动态地显示数据和生成链接。
希望这个示例代码能够对你有所帮助。当然,这只是一个简单的示例,实际的系统中还需要考虑更多的功能和安全性。
阅读全文