linux 下ibatis的对象获取失败的非常规错误解决方法

在window 7上运行没有问题的java web项目,正确布置到linux 系统上的时候却报了此异常:

java.lang.ClassCastException

而在linux上debug的现象是:一个应该返回 List<XXBean> 对象的方法却返回了List<String>,而且此中的String 为地址,为何会如此?
不是JDK的问题
不是Tomcat问题

也不是JAR包的问题

ibatis 的xml映射文件 问题:

   <select id="queryByLikeUserName" resultClass="String">
     select * 
     from T_User
     where T_User.USERNAME =#username#
   </select>


如上:在windows上是没有问题,可以获取到List<T_User> 对象的。

但是在linux上只能获取到:List<String> 

如此只要把此配置文件更正(完善)为:

   <select id="queryByLikeUserName" resultClass="T_User">
     select t.id,t.USERNAME,...,t.email 
     from T_User t
     where t.USERNAME =#username#
   </select>

问题即可解决。

如此便引出了问题:

产生如上问题的原因是:linux 的容错率相较windows低嘛?还是ibatis本身的一个bug?

不知道mybatis是否也有这种情况?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
org.apache.ibatis.exceptions.PersistenceException 是 MyBatis 持久化框架抛出的异常,通常表示在执行数据库操作时发生了错误。要解决该异常,您可以考虑以下几个步骤: 1. 查看异常堆栈轨迹:首先,查看异常堆栈轨迹以获取更详细的错误信息。异常堆栈轨迹可以告诉您哪个方法、类或语句引发了异常。通过调试和检查异常轨迹,您可以更好地理解问题的根本原因。 2. 检查数据库连接:确保数据库连接配置正确并且可用。检查数据库连接字符串、用户名、密码等是否正确。还要确保数据库服务器正在运行。 3. 检查 SQL 语句:如果异常消息中提到了具体的 SQL 语句,您可以检查该语句是否正确。请注意语法错误、表名或列名拼写错误等常见问题。 4. 检查映射文件:MyBatis 使用映射文件将 Java 对象与数据库进行映射。请确保映射文件中配置的查询、插入、更新或删除语句正确。还要检查参数名称、返回类型和结果集映射等是否正确配置。 5. 检查实体类:如果使用了实体类来映射数据库表,确保实体类的属性与表的列名匹配。还要注意实体类属性的数据类型是否与数据库字段的数据类型兼容。 6. 检查数据库连接池配置:如果使用了数据库连接池,确保连接池配置正确。检查最大连接数、最小空闲连接数、连接超时等参数是否适当。 7. 日志记录:在 MyBatis 的配置文件中启用日志记录,可以帮助您更好地理解执行过程中发生的问题。通过查看日志,您可以获得更详细的错误信息和执行过程。 如果以上步骤都无法解决问题,建议您将完整的异常信息、SQL 查询语句、映射文件和相关配置一起提供,以便进行进一步的分析和排查。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值