目的:帮助新手Java程序员编写简单的增删改查接口,不包含分页查询接口,因为不同项目的分页接口写法不一样,可以直接拷贝自己项目的分页接口来修改
一、Controller
/**
* 用户表 控制器 Controller层
*/
@Slf4j
@RestController
@RequestMapping("api/user")
@Api(tags = "用户") //配合swagger使用
public class UserController {
@Autowired
private UserService userService;
@ApiOperation(value = "查询列表")
@RequestMapping(value = "/list", method = RequestMethod.POST)
public List<User> list(@RequestBody User user) {
return userService.getList(user);
}
@ApiOperation(value = "查询详情")
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User detail(@PathVariable(value = "id") String id) {
return userService.getUserById(id);
}
@ApiOperation(value = "修改用户")
@RequestMapping(value = "/update", method = RequestMethod.POST)
public int update(@RequestBody User User) {
return userService.updateUser(User);
}
@ApiOperation(value = "新增用户")
@RequestMapping(value = "/add", method = RequestMethod.POST)
public int add(@RequestBody User User) {
return userService.addUser(User);
}
@ApiOperation(value = "删除用户")
@RequestMapping(value = "/delect/{id}", method = RequestMethod.DELETE)
public int delete(@PathVariable(value = "id") String id) {
return userService.deleteUser(id);
}
}
二、Service
/**
* UserService 用户接口 Service层
*/
public interface UserService extends IService<User> {
List<User> getList(User user);
User getUserById(String id);
int updateUser(User user);
int addUser(User user);
int deleteUser(String id);
}
三、ServiceImpl
/**
* UserServiceImpl 用户接口实现 Service层
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> getList(User user) {
/*直接使用 QueryWrapper 进行查询*/
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//只查询未删除的用户数据
queryWrapper.eq("isDelete",user.getIsDelete());
return userDao.selectList(queryWrapper);
/*调用自己编写的dao层SQL接口进行查询*/
//List<User> userList = userDao.getListByName("张三");
//return userList;
}
@Override
public User getUserById(String id) {
//根据用户id查询详情
return userDao.selectById(id);
}
@Override
public int updateUser(User user) {
//根据用户id修改用户信息
return userDao.updateById(user);
}
@Override
public int addUser(User user) {
//新增用户
return userDao.insert(user);
}
@Override
public int deleteUser(String id) {
//根据用户id删除用户信息
//return userDao.deleteById(id); //物理删除 实际项目情况很少使用
/*应该使用 逻辑删除*/
User user = userDao.selectById(id);
user.setIsDelete(1); //修改是否删除字段 0=否 1=是
user.setUpdateTime(new Date()); //修改更新时间字段
return userDao.updateById(user);
}
}
四、Dao
/**
* 用户表 Mapper 接口 Dao层
*/
public interface UserDao extends BaseMapper<User> {
//复杂的SQL接口直接写在这里,SQL语句写在对应的xxxMapper.xml文件中,然后service层调用dao层接口来处理业务
//根据用户名查询用户列表
List<User> getListByName(String userName);
}
五、Mapper.xml
<!--用户表 Mapper 接口实现 Dao层-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--修改成自己对应的Dao接口包路径-->
<mapper namespace="test.dao.UserDao">
<select id="getListByName" resultType="test.model.User">
select * from user where name = #{userName}
</select>
</mapper>
总结
只是简单的增删改查代码示例,用的时候需要自己改一下返回的实体类、包路径、接口入参...等