新手填坑 java.lang.Integer cannot be cast to java.lang.String

java连接mysql封装的获取集合的公用方法

public List<Map<String, String>> getSet(String sql){
        List<Map<String, String>> list = new ArrayList<Map<String,String>>();
        ResultSet rs = null;
        Statement sm = null;
        try {
            //1.加载驱动程序
            Class.forName(driver);
            con = DriverManager.getConnection(url, user, passwod);
            //2.创建statement类对象,用来执行SQL语句!!
            sm = con.createStatement();
            rs = sm.executeQuery(sql);
            //返回列的描述信息
            ResultSetMetaData rsmd = rs.getMetaData();
            while(rs.next()){
                Map map = new HashMap();
                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                    map.put(rsmd.getColumnName(i), rs.getObject(i));
                }
                list.add(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll(rs,sm,con);
        }
        return list;
    }

因为id这个字段在数据库中是int类型的,返回Map接收查询结果,接收时使用了List<Map<String,String>>,然后在取出id的时候就出现了转换异常

最终修改了封装方法里取id的地方的代码才解决,用toString()方法转换成字符串类型就解决了

做一个随笔记录,纪念自己的坑。

转载于:https://www.cnblogs.com/zhengwanmeixiansen/p/7380666.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值