第十章 springboot + logback
logback是boot默认的日志首选,个人觉得是最好的日志实现(比log4j好)
下边,在之前的代码基础上增加一个功能,该功能要实现mybatis的and or联查功能,并通过logback日志在控制台去查看输出的sql情况。
即实现如下sql的功能:
SELECT * FROM tb_user WHERE id = ? AND (username=? OR `password`= ?);
该语句需要用到xml格式。
注意:由本节开始,springboot采用了1.3.0.
1、com.xxx.firstboot.web.UserController
1 @ApiOperation("测试mybatis and or联查") 2 @ApiImplicitParams({ 3 @ApiImplicitParam(paramType="query",name="id",dataType="int",required=false, value="用户的id",defaultValue="1"), 4 @ApiImplicitParam(paramType="query",name="username",dataType="String",required=false,value="用户的姓名",defaultValue="zhaojigang"), 5 @ApiImplicitParam(paramType="query",name="password",dataType="String",required=false,value="用户的密码",defaultValue="wangna") 6 }) 7 @ApiResponses({ 8 @ApiResponse(code=400,message="请求参数没填好"), 9 @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对") 10 }) 11 @RequestMapping(value="/testMybatisAndOrUnion",method=RequestMethod.GET) 12 public User getUserByIdAndUsernameOrPassword(@RequestParam(name="id",required=false) Integer id, 13 @RequestParam(name="username",required=false) String username, 14 @RequestParam(name="password",required=false) String password) { 15 return userService.getUserByIdAndUsernameOrPassword(id, username, password); 16 }
注意:
- 这里我三个参数都是"required=false",是为了测试。
- id使用Integer是为了让其可以为null来测试,如果改成int的话如果前端不传参数就会出问题。
- 这也是Integer的一个用途
2、com.xxx.firstboot.service.UserService
1 @Service 2 public class UserService { 3 4 private static final Logger LOGGER = LoggerFactory.getLogger(UserService.class); 5 6 @Autowired 7 private UserDao userDao; 8 9 public User getUserByIdAndUsernameOrPassword(Integer id, String username, String password){ 10 User user = userDao.getUserByIdAndUsernameOrPassword(id, username, password); 11 LOGGER.info("getUserByIdAndUsernameOrPassword success! user:'{}'", user); 12 return user; 13 }