《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
}
UserApi类,即controller。
@RestController
@RequestMapping(“user”)
public class UserApi {
@Autowired
private UserService userService;
/**
-
添加用户
-
@param user
*/
@PostMapping(“addUser”)
public String addUser(User user){
userService.addUser(user);
return “添加用户成功”;
}
/**
-
删除用户
-
@param id
*/
@GetMapping(“delUser”)
public String delUser(@RequestParam(value = “id”) int id){
userService.delUser(id);
return “删除用户成功”;
}
/**
-
修改用户信息
-
@param user
*/
@PostMapping(“updateUser”)
public String updateUser(User user){
userService.updateUser(user);
return “修改用户成功”;
}
/**
-
获取用户信息
-
@param id
-
@return
*/
@GetMapping(“getUser”)
public User getUser(@RequestParam(value = “id”) int id){
return userService.getUser(id);
}
@GetMapping(“getUsers”)
public List getUsers(){
List users = userService.findAll();
return users;
}
@GetMapping(“getUserByUP”)
public User getUserByUP(@RequestParam(value = “username”) String username, @RequestParam(value = “password”) String password){
return userService.getUser(username, password);
}
}
UserService类,由于简单,省略了其接口。
@Service
public class UserService {
@Autowired
private IUserDao userDao;
/**
-
添加用户
-
@param user
*/
public void addUser(User user){
userDao.add(user);
}
/**
-
删除用户
-
@param id
*/
public void delUser(int id){
userDao.del(id);
}
/**
-
修改用户信息
-
@param user
*/
public void updateUser(User user){
userDao.update(user);
}
/**
-
获取用户信息
-
@param id
-
@return
*/
public User getUser(int id){
return userDao.find(id);
}
/**
-
获取全部用户信息
-
@return
*/
public List findAll() {
return userDao.findAll();
}
/**
-
获取用户
-
@param username
-
@param password
-
@return
*/
public User getUser(String username, String password) {
User user = userDao.findByUsernameAndPassword(username, password);
return user;
}
}
再就是今天的主角了,使用@Mapper注解声明为MyBatis的数据访问层对象。而对于每个方法,我们并不需要为其提供实现,不过需要提供其逻辑的对应的sql。
MyBatis为我们提供了sql相关的注解,如@Insert、@Delete、@Update、@Select等,我们使用这些注解配合sql,即可实现我们的数据库操作。
注意不要漏掉@Param来指明sql参数的名称,否则因为在编译后中的class文件并不记录方法参数名,会导致sql中的参数名无法识别的问题。
@Mapper
public interface IUserDao {
/**
-
添加用户
-
@param user
-
@return
*/
@Insert(“insert into user(username, password) values(#{username}, #{password})”)
int add(User user);
/**
-
根据id删除用户
-
@param id
-
@return
*/
@Delete(“delete from user where id = #{id}”)
int del(@Param(“id”) int id);
/**
-
更新用户信息
-
@param user
-
@return
*/
@Update(“update user set username = #{username}, password = #{password} where id = #{id}”)
int update(User user);
/**
-
根据id查找用户
-
@param id
-
@return
*/
@Select(“select * from user where id = #{id}”)
User find(@Param(“id”) int id);
/**
-
获取全部用户
-
@return
*/
@Select(“select * from user”)
总结
谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。
为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)
66个Java面试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)
算法刷题(PDF)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
或者Word文档(含详细答案解析)**
[外链图片转存中…(img-H3Ia6FBP-1714670721245)]
66个Java面试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)
[外链图片转存中…(img-XYnYM2y0-1714670721246)]
算法刷题(PDF)
[外链图片转存中…(img-3TKExvEf-1714670721246)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!