整个项目是使用Mybatis操作的数据库(Mybatis在前面也有总结使用的方法:https://www.cnblogs.com/zhaochunhui/p/11372793.html)
项目代码上传github:https://github.com/H-Designer/SpringBoot-Mybatis-CRUD
项目在创建的时候,要选好我们需要的依赖的模块,web,mysql,jdbc,mybatis
数据库连接的是虚拟机里面的,更换一下地址的ip就行
#数据库信息的相关配置 spring: datasource: url: jdbc:mysql://192.168.43.197:3306/cache username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver #驼峰命名法的启用 mybatis: configuration: map-underscore-to-camel-case: true
数据库的连接信息根绝实际的情况进行填写就行
项目实现的是员工信息的crud,创建一个employee的实体类
package com.example.cache.bean; public class Employee { private Integer id; private String lastName; private String email; private Integer gender; //性别 1男 0女 private Integer dId; public Employee() { super(); } public Employee(Integer id, String lastName, String email, Integer gender, Integer dId) { super(); this.id = id; this.lastName = lastName; this.email = email; this.gender = gender; this.dId = dId; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getGender() { return gender; } public void setGender(Integer gender) { this.gender = gender; } public Integer getdId() { return dId; } public void setdId(Integer dId) { this.dId = dId; } @Override public String toString() { return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + ", dId=" + dId + "]"; } }
用Mybatis操作数据库需要制定Mapper文件。有两种方式,一种是在mapper类文件上加上mapper的注解:@Mappaer
另一种是在启动函数或者是在配置文件中加上:@MapperScan("com.example.cache.mapper")具体的文件的路径根据实际情况修改
package com.example.cache.mapper; import com.example.cache.bean.Employee; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; public interface EmployeeMapper { @Select("select * from employee where id=#{id}") public Employee getEmpById(Integer id); @Update("update employee set lastName=#{lastName},email=#{email},gender=#{gender},d_id=#{dId} where id=#{id}") public void updateEmp(Employee employee); @Delete("delete from employee where id=#{id}") public void deleteEmp(Integer id); @Insert("insert into employee(lastName,email,gender,d_id) values(#{lastName},#{email},#{gender},#{dId})") public void insertEmp(Employee employee); }
这些就是对数据库信息的修改的形式,增删改查的底层的实现
然后就是service的编写,实现具体的增删改查的类的编写:
package com.example.cache.service; import com.example.cache.bean.Employee; import com.example.cache.mapper.EmployeeMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class EmployeeService { @Autowired EmployeeMapper employeeMapper; //查询员工信息 public Employee getEmp(Integer id){ System.out.println("查询"+id+"号员工信息"); Employee emp = employeeMapper.getEmpById(id); return emp; } //删除员工信息 public void deleteEmp(Integer id){ System.out.println("删除"+id+"号员工信息"); employeeMapper.deleteEmp(id); } //增加员工信息 public void insertEmp(Employee employee){ System.out.println("增加新的员工信息"); employeeMapper.insertEmp(employee); } //修改员工信息 public void updateEmp(Employee employee){ System.out.println("修改"+employee.getId()+"号员工信息"); employeeMapper.updateEmp(employee); } }
具体的方法实现以后,就是在发送请求的时候,解析请求,实现具体的方法的调用:这就是Controller的内容了;
package com.example.cache.controller; import com.example.cache.bean.Employee; import com.example.cache.service.EmployeeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class EmpController { @Autowired EmployeeService employeeService; //查询员工信息 @GetMapping("/getEmp/{id}") public Employee getEmployee(@PathVariable("id") Integer id){ Employee emp = employeeService.getEmp(id); return emp; } //删除员工信息 @GetMapping("/deleteEmp/{id}") public void deleteEmployee(@PathVariable("id") Integer id){ employeeService.deleteEmp(id); } //增加员工信息 @GetMapping("/insertEmp") //这里,在传参的时候,只需要将床底的参数的名称和Bean里面的参数的名称一致即可,employee就可以接收到所有的参数信息 public void insertEmployee(Employee employee){ System.out.println(employee); employeeService.insertEmp(employee); } //修改员工信息 @GetMapping("/updateEmp/{id}") public void updateEmployee(Employee employee,@PathVariable("id") Integer id){ System.out.println(employee); employeeService.updateEmp(employee); } }
这里需要值得一提的是,在我们的insert和update操作的时候,需要将员工的全部信息传递过去,这时候 不需要每一个参数进行一一的接收,我们只需要在我们传递参数的时候,将变量名和bean里面的变量名保持一致,这样就可以以实体类的方式,将全部的参数信息接收到。
原文地址:https://www.cnblogs.com/zhaochunhui/p/11392761.html