2 weixin 38221608 weixin_38221608 于 2017.08.28 09:17 提问

请教大神,这个是注入的数据类型错了吗? 15C

如题:我用sql查数据,查出来后,在代码那里,死活来了个long类型不能注入到integer类型,我知道的办法都用了,哪位大神帮忙看下

这条sql,

select type, count(*) from lzh_member_discuz_logs group by type;

这是数据库结果

图片说明

    public DiscuzLogsDTO selectForfum() {
        List<Map<Integer, Integer>> list = discuzLogsDAO.selectForumPosts();
        DiscuzLogsDTO discuzLogsDTO = new DiscuzLogsDTO();
        for (Map<Integer, Integer> map2 : list) {
            if (map2.get("type") == 1) {
                logger.info("sendPosts :  {}",map2.get("count(*)"));
                System.out.println("1");
                《问题在这,debug走到这里,会报错,long不能注入到integer》
                Integer integer = map2.get("count(*)").intValue();
                System.out.println("2");
                discuzLogsDTO.setSendPosts(integer);
                System.out.println("3");
            }
            if (map2.get("type") == 2) {
                logger.info("backPosts :  {}",map2.get("count(*)"));
                discuzLogsDTO.setBackPosts(map2.get("count(*)").intValue());
            }
        }
        return discuzLogsDTO;
    }

求助~~

8个回答

zy841958835
zy841958835   Ds   Rxr 2017.08.28 11:02

Integer i = new Long(map2.get("count(*)")).intValue();
原始类型不能转换的

qq_33727653
qq_33727653   Rxr 2017.08.28 09:28

把intValue()去掉也报错吗?看代码,你的map2 的key明明是Integer类型。但是为什么你map2取值get的时候怎么成了String型?

weixin_38221608
weixin_38221608 我也在奇怪...,其他取不出来啊...logger.info 能打印出值的,
11 个月之前 回复
SeaTalks
SeaTalks   2017.08.28 09:29

你代码里面map2的key和value的类型都是Integer,而调用了map2.get(字符串)方法,改为map2.get(0)或map2.get(1)

weixin_38221608
weixin_38221608 哥们 这个是取不到的, 你都没东西映射他
11 个月之前 回复
m0_38091006
m0_38091006   2017.08.28 09:35

map2.get("count(*)").intValue() 的值应该是Long类型的
List> 改为 List> 试试,

weixin_38221608
weixin_38221608 你这个应该被网站自动转义了吧...
11 个月之前 回复
qq_23292875
qq_23292875   Rxr 2017.08.28 09:53

Long integer = map2.get("count(*)").intValue();

weixin_38221608
weixin_38221608 .intValue();本身就是把long转换成int, 这个map2.get(("count(*)"),他就是一个long类型的,我就是要把他换成integer
11 个月之前 回复
FluxMode
FluxMode   2017.08.28 09:58

(map2.get("type"))你这个map的key不是字符串吗? 你存储的时候不能使用 Map吗?

FluxMode
FluxMode "map<String,String>"
11 个月之前 回复
phenomenonsTell
phenomenonsTell   2017.08.28 10:17
/**
     * Returns the value of this {@code Long} as an {@code int} after
     * a narrowing primitive conversion.
     * @jls 5.1.3 Narrowing Primitive Conversions
     */
    public int intValue() {
        return (int)value;
    }
//这是intValue()的源码,你直接使用强制转换类型试试,不行应该是其他问题不是这里错了,你应该把报错的记录截图发出来,这样才能看得更具体一点
weixin_38221608
weixin_38221608 解决啦 ,谢谢
11 个月之前 回复
weixin_38221608
weixin_38221608   2017.08.28 10:23

问题解决了 , 谢谢大家 我是换了个玩法,感觉还是resultMap比resultType 的多...直接数据库跟对象映射...

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
这个是错在哪里了
org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTeiorg.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.
错了吗?
放弃不该放弃的,这是错吗,我怎么能放弃的了,在茫茫人海我能遇见她,我怎么能放弃,她说她什么都没有想,是真的吗,她能懂我吗?她说她已经给足我面子了,已经给我说过很多次了,是呀,一切都是我自以为是。我真的自大,自信有什么用。我明白了,一切都是我要求的我想和你一起,不是想和你腻在一起,只是为了珍惜。
关于DAO实现类继承JdbcDaoSupport类后,使用注解无法注入DataSource的问题
解决办法: 方法1:最简洁,用重写类构造函数的办法自动装配daoSupport需要用到的数据源. @Autowired UserDaoImpl(DataSource dataSource){ setDataSource(dataSource); }   方法2:使用前置通知,初始化的时候自动装配数据源. @AutoWired Private DataSource data
学习笔记-注入各种类型的bean数据
今天学习了如何注入各种类型的bean先看bean代码AllKindsService是用来测试注入的各种类型的beanEmployeel是用来创建对象供AllKindsService使用的beanpackage it.bean.assemble;//这个bean的作用是作为对象供下一个使用(因为有的类型可以从存对象属性)public class Employeel {private String n...
Mysql 报错注入的原理探索
我们一般使用的报错语句: 1 select count(*),concat((select version()),floor(rand()*2))a from information_schema.tables group by a; concat:为聚合函数,连接字符串功能 foolr:取float的整数值 rand:取0~1之间随机浮点值,长度测试大概为16-19的样子,官方
oracle注入技术手册(Hacking_Oracle_From_Web)
该文档介绍了oracle显错、不显错情况下的注入,并介绍通过注入执行系统命令,同时介绍多种提权的0day 注意是英文版的
MySQL暴错注入方法整理
1、通过floor暴错 /*数据库版本*/ http://www.hackdig.com/sql.php?id=1+and(select 1 from(select count(*),concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1)
SQL SERVER 2008 高级注入 不支持单引号条件 显错模式
备注:显错模式 表个数 http://www.xxxxxx.xx/xx/oo.asp?id=10 and (select count(table_name) from sportstatz.information_schema.tables)=642 爆表 http://www.xxxxxx.xx/xx/oo.asp?id=(select top 1 table_name from
这个是java线程死锁了吗??
package com.zdyn.action; public class TestThread { public static int flag = 1; public static void main(String[] args) { Thread t1 = new Thread(new Demo1()); Thread t2 = new Thread(new Demo2()
SpringMVC 在controller层中注入request(不会产生线程安全问题)
之前做项目的时候,在controller中多个方法需要用到request和session获取用户相关值,为了方便写了个BaseController所有controller基础它,在BaseController中Autowired注解request和httpsession,这样子,不需要在各个接口单独加上request入参。这样子的设计在开发阶段和测试阶段都用了有一段时间,一直没有问题。最近偶然在国...