新手填坑 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()方法轉換成字符串類型就解決了

做一個隨筆記錄,紀念自己的坑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM