Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template 、Spring异常处理

我们可以将异常抛给spring框架,让spring来帮我们处理异常。

(1)使用简单异常处理器

step1. 配置简单异常处理器。

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

step2. 添加对应的异常处理页面。
注:该方式只适合处理简单异常的处理,如果要对异常做复杂处理,比如 记录日志等,则不合适了。

(2)使用@ExceptionHandler注解

step1. 在处理器类当中,添加一个异常处理方法, 该方法要使用@ExceptionHandler注解来标注。

 

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

step2.添加对应的异常处理页面。

2. SpringJdbc

(1)SpringJdbc是什么?

是spring框架中的一个模块,对jdbc api做了封装,简化了 jdbc的代码(比如,不用考虑获取连接与关闭连接了)

(2)编程步骤

step1. 导包。

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

step2. 添加spring配置文件。
step3. 添加JdbcTemplate配置。

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

注:JdbcTemplate对jdbc的api做了封装。
step4. 调用JdbcTemplate提供的方法。
注:通常将JdbcTemplate注入到DAO。

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

 

 

  • springmvc提供的异常处理机制代码

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

src/main/java

controller

package controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    @ExceptionHandler
    public String handler(Exception ex,
            HttpServletRequest request){
        System.out.println("handler()");
        /*
         * 依据异常类型,分别进行相应的处理。
         * ex:就是方法所抛出的异常。
         */
        if(ex instanceof NumberFormatException){
            request.setAttribute("msg",
                    "亲,请输入正确的数字");
            return "error";
        }else if(ex instanceof 
                StringIndexOutOfBoundsException){
            request.setAttribute("msg",
                    "下标越界了");
            return "error";
        }else{
            //其它异常
            return "sys_error";
        }
    }
    
    @RequestMapping("/toHello.do")
    public String toHello(){
        System.out.println("toHello()");
        String str = "123a";
        Integer.parseInt(str);
        return "hello";
    }
    
    @RequestMapping("/toHello2.do")
    public String toHello2(){
        System.out.println("toHello2()");
        String str = "abcd";
        str.charAt(10);
        return "hello";
    }
}
HelloController.java

相关文章: