本文章介绍一个基于java的简单酒店数据管理系统
项目介绍
该项目适用于初学java后,需要一个小练手的java web项目,该项目是只有一个酒店数据表,然后实现对该酒店增加,修改,删除和分页查询的小案例,虽然项目不是很复杂,但麻雀虽小但五脏俱全,适合于个人学习适用。
项目使用的技术架构
后端:java+SpringBoot + MyBatis-Plus
数据库:MySQL
前端:Vue + Element-ui + Axios
开发工具:idea或eclipse
更多项目请查看:项目帮
项目实现
HotelController
定义了对酒店信息的CRUD的接口:
@RestController@RequestMapping("hotel")public class HotelController { @Autowired private IHotelService hotelService; /** * 通过id来查询酒店数据 * @param id 酒店id号 * @return */ @GetMapping("/{id}") public Hotel queryById(@PathVariable("id") Long id){ return hotelService.getById(id); } /** * 分页查询数据列表出来 * @param page 页码 * @param size 每页的大小 * @return */ @GetMapping("/list") public PageResult hotelList( @RequestParam(value = "page", defaultValue = "1") Integer page, @RequestParam(value = "size", defaultValue = "1") Integer size ){ Page result = hotelService.page(new Page(page, size)); return new PageResult(result.getTotal(), result.getRecords()); } /** * 保存酒店信息 * @param hotel 酒店信息实体类 */ @PostMapping public void saveHotel(@RequestBody Hotel hotel){ hotelService.save(hotel); } /** * 更新酒店信息 * @param hotel 酒店信息实体类 */ @PutMapping() public void updateById(@RequestBody Hotel hotel){ if (hotel.getId() == null) { throw new InvalidParameterException("id不能为空"); } hotelService.updateById(hotel); } /** * 通过酒店id删除酒店信息 * @param id 酒店id号 */ @DeleteMapping("/{id}") public void deleteById(@PathVariable("id") Long id) { hotelService.removeById(id); }}
- 前端使用的vue
简单酒店管理 简单酒店增删改查项目
新增酒店 取 消 确 定 // 设置后台服务地址 axios.defaults.baseURL = "http://localhost:8099"; axios.defaults.timeout = 3000; const app = new Vue({ el: "#app", data: { hotels: [], total: 1000, formVisible: false, // 是否显示表单 formLabelWidth: "100px", // 表单label宽度 hotel: {}, // 表单中的酒店数据 isEdit: false, // 是否是更新 lastPage: 1,// 上一次查询的页码 }, created() { this.query(1); }, methods: { beginAdd(){ this.isEdit = false; this.hotel = {}; this.formVisible = true; }, query(page){ this.lastPage = page; axios.get("/hotel/list", { params: { page: page, size: 5 } }) .then(resp => { this.hotels = resp.data.hotels; this.total = resp.data.total; }) .catch(err => console.log(err)); }, handleEdit(v1, v2) { this.isEdit = true; this.hotel = JSON.parse(JSON.stringify(v2)); this.formVisible = true; }, handleDelete(v1, v2) { this.$confirm('此操作将永久删除酒店信息, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.deleteById(v2.id); }).catch(() => { this.$message({ type: 'info', message: '已取消删除' }); }); }, confirmEdit(){ if(this.isEdit){ axios.put("/hotel", this.hotel) .then(resp => { this.$message({ message: '更新成功', type: 'success' }); this.formVisible = false; this.reload(); }) .catch(err => { this.$message({ message: '更新失败', type: 'error' }); console.log(err); }) }else{ axios.post("/hotel", this.hotel) .then(resp => { this.$message({ message: '新增成功', type: 'success' }); this.formVisible = false; this.reload(); }) .catch(err => { this.$message({ message: '新增失败', type: 'error' }); console.log(err); }) } }, deleteById(id){ axios.delete("/hotel/" + id) .then(() => { this.$message({ type: 'success', message: '删除成功!' }); this.reload(); }) .catch(err => { this.$message({ type: 'error', message: '删除失败!' }); console.log(err); }) }, reload(){ this.query(this.lastPage); } } })项目实现的效果
- 首页
- 增加酒店信息页面