Springboot 使用 jdbcTemplate 和全局异常处理

JDBCTemplate

在pom.xml加入jdbcTemplate的依赖;

<dependency>
	  <groupId>org.springframework.boot</groupId>
	  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--如果在JPA已经加入的话,则可以不用引入以上的配置。-->

编写DemoDao类,声明为:@Repository,引入JdbcTemplate

/**
 * 使用@Repository注解,标注这是一个持久化操作对象
 * Created by ThinkPad on 2017/10/6.
 */
@Repository
public class CatDemoDao {

    @Resource
    private JdbcTemplate jdbcTemplate;

    public Cat selectByCatName(String catName){
        /**
         * 1、定义一个Sql语句;
         * 2、定义一个RowMapper.
         * 3、执行查询方法.
         */
        String sql = "select *from cat where cat_name=?";
        RowMapper<Cat> rowMapper = new BeanPropertyRowMapper<>(Cat.class);
        Cat cat = jdbcTemplate.queryForObject(sql, new Object[]{catName}, rowMapper);
        return cat;
    }
}

编写DemoService类,引入DemoDao进行使用

@Service
public class CatDemoService {

    @Resource
    private CatDemoDao catDemoDao;

    public Cat selectByCatName(String catName){
        return catDemoDao.selectByCatName(catName);
    }

}

编写Demo2Controller进行简单测试。 77a48205b6fc4897873991cefcc31cee-image.png

全局异常处理

新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value = Exception.class),具体代码如下:

/* 1、新建一个Class,这里取名为GlobalDefaultExceptionHandler
 * 2、在class上添加注解,@ControllerAdvice;
 * 3、在class中添加一个方法
 * 4、在方法上添加@ExcetionHandler拦截相应的异常信息;
 * 5、如果返回的是View -- 方法的返回值是ModelAndView;
 * 6、如果返回的是String或者是Json数据,那么需要在方法上添加@ResponseBody注解.
 *
 * Created by ThinkPad on 2017/10/6.
 */
@ControllerAdvice
public class GlobalDefaultExceptionHandler {


    @ExceptionHandler(Exception.class)
    @ResponseBody
    public String defaultExceptionHandler(HttpServletRequest req, Exception e){
        //是返回的String.
        //ModelAndView -- 介绍 模板引擎...?
//		ModelAndView mv = new ModelAndView();
//		mv.setViewName(viewName);
        return "对不起,服务器繁忙,请稍后再试!";
    }
}

测试如下 9c0caca15a434687af99a91782e0be19-image.png


已有 0 条评论

    我有话说: