基于UncategorizedSQLException异常处理方案

 更新时间:2023年12月13日 16:18:54   作者:不大的锤子  
这篇文章主要介绍了基于UncategorizedSQLException异常处理方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

UncategorizedSQLException异常处理

如题,先贴console:

org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [select * from zb_zbfl_sjzbfl_view where zb_id=?4]; SQL state [72000]; error code [1008]; ORA-01008: 并非所有变量都已关联

; nested exception is java.sql.SQLException: ORA-01008: 并非所有变量都已关联

这条简单语句数据库运行是没有问题的,我dao层是用的rowmapper进行封装处理的,报并非所有变量都已关联的错误已经好多次了,摸索了几个小时,总算搞懂了rowmapper的大概用法。

附上部分源代码:

  • model:
public class Zbfl_mc_and_sjzbfl_mc {
    Integer zb_id;
    Integer zbfl_id;
    Integer sjzbfl_id;

    String zbfl_mc;
    String sjzbfl_mc;

    .........

}
  • rowmapper:
public class Zbfl_mc_and_sjzbfl_mc_RowMapper implements RowMapper{

    @Override
    public Object mapRow(ResultSet rs, int arg1) throws SQLException {
        
        Zbfl_mc_and_sjzbfl_mc zbfl_mc_and_sjzbfl_mc=new Zbfl_mc_and_sjzbfl_mc();
        
        zbfl_mc_and_sjzbfl_mc.setZb_id(rs.getInt("zb_id"));
        zbfl_mc_and_sjzbfl_mc.setZbfl_id(rs.getInt("zbfl_id"));
        zbfl_mc_and_sjzbfl_mc.setSjzbfl_id(rs.getInt("sjzbfl_id"));
        zbfl_mc_and_sjzbfl_mc.setSjzbfl_mc(rs.getString("sjzbfl_mc"));
        zbfl_mc_and_sjzbfl_mc.setZbfl_mc(rs.getString("zbfl_mc"));
        return zbfl_mc_and_sjzbfl_mc;
    }
}
  • daoImpl:
@Override

public Zbfl_mc_and_sjzbfl_mc set_zbfl_and_sjzbfl(Integer zb_id) {
    String sql="select * from zb_zbfl_sjzbfl_view where zb_id="+zb_id;
    System.out.println(sql);
    return getJdbcTemplate().queryForObject(sql, zbfl_mc_and_sjzbfl_mc_RowMapper);
}

错误原因

rowmapper封装的是返回的对象,而我是select * ,数据库中这个视图除了rowmapper有封装的数据

还有一些其他数据,所以select查出来以后没法去封装一一对应

所以会报 “并非所有变量都已关联”这个错误

修改办法

只需要把sql改成

select zb_id,zbfl_id,sjzbfl_id,sjzbfl_mc,zbfl_mc from zb_zbfl_sjzbfl_view where ....

错误即可解决!!!!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java中Optional的使用详细解析

    java中Optional的使用详细解析

    这篇文章主要介绍了java新特性之Optional的详细解析,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 浅析Java如何在Excel中添加或删除分页符

    浅析Java如何在Excel中添加或删除分页符

    一份排版精良、分页合理的报表,不仅能提升专业度,更能确保信息的有效传达,本文将向大家介绍如何使用 Spire.XLS for Java 在Java中实现Excel分页符的添加与删除,有需要的可以了解下
    2025-11-11
  • activemq整合springboot使用方法(个人微信小程序用)

    activemq整合springboot使用方法(个人微信小程序用)

    这篇文章主要介绍了activemq整合springboot使用(个人微信小程序用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • drools的简单入门案例场景分析

    drools的简单入门案例场景分析

    drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,这篇文章主要介绍了drools的简单入门案例,需要的朋友可以参考下
    2022-05-05
  • 使用Maven打包时排除指定的目录或指定的类

    使用Maven打包时排除指定的目录或指定的类

    在maven项目中,通过修改pom.xml文件,在maven-compiler-plugin的configuration>excludes节点下添加排除匹配条件,可以剔除掉生产包中的测试类,注意使用**表示多级目录匹配,*表示一级目录匹配
    2024-11-11
  • java 实现数组扩容与缩容案例

    java 实现数组扩容与缩容案例

    这篇文章主要介绍了java 实现数组扩容与缩容案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 关于SpringBoot的三级缓存的思考问题小结

    关于SpringBoot的三级缓存的思考问题小结

    文章解析SpringBoot三级缓存机制,指出其核心在于通过提前暴露早期引用解决单例Bean属性注入的循环依赖,支持AOP代理,但构造函数注入无法解决,本质是为特殊场景提供生命周期弹性通道,本文给大家介绍对于SpringBoot的三层缓存的思考,感兴趣的朋友一起看看吧
    2025-10-10
  • springBoot集成Elasticsearch 报错 Health check failed的解决

    springBoot集成Elasticsearch 报错 Health check failed的解决

    这篇文章主要介绍了springBoot集成Elasticsearch 报错 Health check failed的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java循环对bean的属性进行赋值的实现

    Java循环对bean的属性进行赋值的实现

    本文主要介绍了Java循环对bean的属性进行赋值,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤

    Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤

    这篇文章主要介绍了Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论