ssm框架中,如何抛出sql语句检查约束异常?

在做透支转账时,前台报500,提示:违反检查约束条件;
不知在哪里抛出或者声明异常,请大神指点
前台报错500,内容如下:
exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException:

Error updating database. Cause: java.sql.SQLException: ORA-02290: 违反检查约束条件 (PEPE.SALARY)

The error may involve com.zrgk.ssm.dao.EmpDao.updateSal-Inline

The error occurred while setting parameters

SQL: update emp set salary=salary+? where empid=?

Cause: java.sql.SQLException: ORA-02290: 违反检查约束条件 (PEPE.SALARY)

; SQL []; ORA-02290: 违反检查约束条件 (PEPE.SALARY)
; nested exception is java.sql.SQLException: ORA-02290: 违反检查约束条件 (PEPE.SALARY)

service实现类代码如下:
(已做转账的声明式事务)

@Service
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpDao ed;

    @Override
    @Transactional(readOnly=false,propagation=Propagation.REQUIRED)
    public void zhuan(Integer ruid, Integer chuid, Double money) {
        // TODO Auto-generated method stub

        //先转入
        ed.updateSal(new Emp(ruid,null, money));
        //再转出
        ed.updateSal(new Emp(chuid, null, -money));

    }
}

11个回答

在dao层抛出,EmpDao

weixin_39147947
weegle2014 dao层处理早了,在controller层处理,还是谢谢大森的思路
一年多之前 回复
weixin_39147947
weegle2014 回复weixin_37799792: 大神,是不是不能用注解方式的声明事务啊?
一年多之前 回复
weixin_39147947
weegle2014 回复weixin_37799792: 嗯,前台是不报错了,后台也抓住异常了,但是事务不起作用了,转出的账户钱没变,转入的账户钱增加了。。。
一年多之前 回复
weixin_37799792
csdnKeyborder 然后在service层捕获异常,并返回错误的提示信息给controller,并返回给页面
一年多之前 回复

最好是做一个异常处理类,统一处理异常,然后又异常的地方throw即可

1.违反约束条件是你程序的验证没做好把,约束做好了怎么会报约束错误。
2.做全局异常处理器统一处理异常,抛就抛自己自定义的异常。

做全局异常处理器统一处理异常,抛就抛自己自定义的异常

这个你仔细看一下的你写的sql语句,多了分号什么的 你检查一次sql

qq_39086076
软件三班刘同学 回复weixin_39147947: 他报的异常就是说你sql语句有问题 也就是你的 mapper.xml 配置文件里面
一年多之前 回复
qq_39086076
软件三班刘同学 回复weixin_39147947: ssm 肯定要有sql
一年多之前 回复
weixin_39147947
weegle2014 我也没写过sql语句啊,就是不想写才用的ssm
一年多之前 回复

估计是sql语句写的有问题,你可以试试一个简单的查询看看。

最好看下数据库的表创建语句,看下SALARY字段设置了什么约束规则或者索引,应该是更新后的数据跟字段上设置的约束规则冲突了

weixin_39147947
weegle2014 回复aiwumian: 嗯,有非负检查
一年多之前 回复

原来是在conroller中把对应方法try catch,然后return到提示错误页面,代码如下:

@RequestMapping("zhuan.do")
    public String zhuan(Integer ruid,Integer chuid,Double money){
        try {
            es.zhuan(ruid, chuid, money);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            return "error.jsp";
            //e.printStackTrace();
        }
        return "redirect:zhuan.jsp";
    }

dao层处理早了

写一个全局的处理异常方法,所有异常都会被拦截

用 for each 来包住异常

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

6
ssm的框架使用json传递前端的表单数据,controller处理之后无法再进行页面的跳转
1
ssm框架中,同时连接多个数据库的问题
3
ssm框架下,怎么将从数据库查询到的数据显示在table表格中?
3
搭建SSM框架中,controller无法实现页面跳转?
4
SSM框架中,怎么通过controller实现页面的跳转?
2
求教:在ssm框架下如何获取设备api接口传输的json数据并保存到mysql数据里?
0
ssm框架中找不到依赖类的问题?
1
要做一个电商网站后台使用的ssm框架前端页面想要实现那种自动生成静态页面的技术求大神推荐
1
【ssm+oracle】创建物化视图后,ssm框架下怎么连接物化视图呀。。
5
idea上进行SSM框架整合时Tomcat报错
2
请问ssm框架中model能存储map集合的数据到前端吗
0
ssm框架配置问题(固定配置?)
2
使用ssm框架实现增删改查,在HTML页面上显示
6
求助,ssm框架insert语句接收不到pojo类的数据什么问题
3
ssm框架整合出现的创建Bean失败,说是springmvc抛出的异常,大佬们看一下怎么解决
3
用eclipse使用ssm框架搭建web项目,在jsp中引入jQuery,请求状态200,但是response是空的,请问为什么
1
SSM 查询 异常 java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作
1
使用SSM框架 将mysql数据库中建立的表的数据插入到postgresql数据库中的同名表内。求一个demo
2
maven中搭建SSM框架controller层跳转问题