做老项目jdbc时遇到的问题java.lang.Long cannot be cast to java.lang.Integer
首先附上修改前代码
StringBuffer sql = new StringBuffer();
List<Object> params = new ArrayList<Object>();
sql.append(" SELECT count(*) as count FROM ");
sql.append(TjfxUtil.getAjRyBlTableName(pzms));
sql.append(Integer.valueOf(GzlpgUtil.getCurrFy()));
sql.append(" WHERE c_bh = ? ");
params.add(Cbh);
Map<String, Object> queryForMap = this.getJdbcTemplate().queryForMap(sql.toString(), new Object[] { Cbh });
return(Integer)queryForMap.get("count");
开项目的时候这个地方报错java.lang.Long cannot be cast to java.lang.Integer,因为Integer属于不可更改类型,而且Long和Integer没有任何继承关系,这样转换不过来发现这个问题之后做了下面的修改
StringBuffer sql = new StringBuffer();
List<Object> params = new ArrayList<Object>();
sql.append(" SELECT count(*) as count FROM ");
sql.append(TjfxUtil.getAjRyBlTableName(pzms));
sql.append(Integer.valueOf(GzlpgUtil.getCurrFy()));
sql.append(" WHERE c_bh = ? ");
params.add(Cbh);
Map<String, Object> queryForMap = this.getJdbcTemplate().queryForMap(sql.toString(), new Object[] { Cbh });
Number num = (Number)queryForMap.get("count");
return num.intValue();
number是java.lang.Byte java.lang.Double java.lang.Float
java.lang.Integer java.lang.Long java.lang.Short这些的父类
这样转换就可以了