java1.8,Map<String, String>接收mybatis查询返回来的数据时出错 5C

使用java1.8,Map接收mybatis查询返回来的数据时,map中的value是Integer类型。
图片说明。这是怎么回事,求解。

0

9个回答

mybatis会根据返回的ResultSet根据schema类型生成结果,如果表中定义是整数那么返回的就是整数,表中定义的是Varchar,返回就是字符串,这里涉及到数据字段与java数据类型的映射关系,可以通过SQLMap进行配置。像你这种情况其实有两种方案可以解决或者避免。
1、使用Model而不是Map
定义一个Model容器而不是Map接收数据DO对象,这样代码更容易阅读,我们推荐使用这种方式。
2、使用Map
如果你确实不想创建那么多Do对象,可以使用Map,取数据的时候只需要使用强制类型转换就可以获取你要的数据

1
csdnwodeboke
易中仙 Map和HashMap都试过了,都有这样的问题,指明了泛型<String,String>,但是还是将Integer类型的数据给映射进去了,我有解决的问题方案,使用实体接收返回结果,或者用Map<String,Object>.提这个问题是想弄清楚这里的原因,并不是找解决办法。
大约一年之前 回复

除非你查的这个表的列都是字符串类型的,Map的泛型才能用,不然就得换成或者不要泛型。

1

果使用select * 来查询的 那么实体类中的属性必须和数据表中对应的字段一模一样

如果使用select 字段名 as 别名来查询的 ,那么实体类中的属性必须和你取的别名对应

总之,你查询出来的字段和你实体类中对应的属性名必须一致

0
csdnwodeboke
易中仙 使用的map接收的查询结果的,不存在你说的一致不一致的问题。
大约一年之前 回复

那就用hashMap 接受吧

0
csdnwodeboke
易中仙 我有解决问题的方案,提这个问题不是为了找解决问题的方案,就是想弄清楚这个原因。
大约一年之前 回复
csdnwodeboke
易中仙 HashMap也是这样。都试过了。
大约一年之前 回复

首先你的没有报错把,泛型的存在是为在编译的时候保证语法的错误,没有错误即可不必纠结断点看到的

0
csdnwodeboke
易中仙 编译没有报错,运行的时候就会出错。为了学习想弄清楚这是为什么,怀疑是jdk的漏洞
大约一年之前 回复

这个应该和jdk版本没关系吧?hadPowerRule 接收的值,value值应该和数据库的字段类型一样,建议map的value 用Object承接,如下:
List>hadPowerRule=...

0
csdnwodeboke
易中仙 我知道Object可以接受,使用实体也能解决。提这个问题不是找解决办法, 而是想弄清楚这里面的原因。
大约一年之前 回复

mybatis中返回类型是map的时候他会根据数据库表字段类型自动载入,建议直接用map

0
weixin_42665191
筱~破^ 回复csdnwodeboke:mybatis是可以进行自动强转的,但是什么时候强转,转换机制这些就要看源码了
大约一年之前 回复
csdnwodeboke
易中仙 Map也试过了,使用Map<String,String>指明了泛型,还是把Integer的类型给映射进去了。
大约一年之前 回复

擦,尖括号被吞了,除非你查的这个表的列都是字符串类型的,Map的泛型才能用String,String,不然就得换成String,Object或者不要泛型。

0
csdnwodeboke
易中仙 是这样的,将Integer类型映射到了Map<String,String>中jdk竟然没有报错,你知道为什么吗?如果你知道我就采纳你的答案。
大约一年之前 回复

我今天也遇到这个问题了, 问题的关键就在于你 数据库中存储的 map 相对于的value 是不是double类型,如果不是double类型,你map, Double d=get(key)也会报错。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Map<String, String>循环遍历的方法
Map&amp;lt;String, String&amp;gt;循环遍历的方法 Map&amp;lt;String, String&amp;gt;循环遍历的方法 Map&amp;lt;String, String&amp;gt;循环遍历的方法 下面是代码部分: Map&amp;lt;String, String&amp;gt; map = new HashMap&amp;lt;String, String&amp;gt;(); map.put(&quot;key1&quot;,...
Mybatis查询表数据及其列名,返回List<Map<String,Object>>
之前遇到一个需求,是要查询数据库的表数据的同时查询出其列名 <select id="getReportData" resultType="java.util.Map" > <![CDATA[ select * from tabNm t ]]> </select> 查询的结果每一行为List中的一个map,列名为key,结果数据为value
string 的问题,删除时出错
是这样的rn假如:rnstring *name=new string[100];rn给name内的东西赋值。rn//用erase()清空赋的值,一样会出错。rndelete name;//这里出错。不知道怎么回事。
DBNull转换成String时出错
我的语句是这样的:rnda1.SelectCommand.CommandText = "select * from bzj_jbxx where dhhm='" + Request.QueryString("dhhm") + "'"rn da1.Fill(DataSet21, "bzj_jbxx")rn Tryrn txtDhhm.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("dhhm")rn txtJdm.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("jdm")rn txtYhmc.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("yhmc")rn txtJmc.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("jmc")rn txtAcc_nbr.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("acc_nbr_97")rn txtIdCard.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("id_card")rn txtAddr.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("addr")rn txtYhzh.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("yhzh")rn txtZhmc.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("zhmc")rn txtAmt_f.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("amt_f")rn txtZhye.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("zhye")rn txtIP.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("ip")rn txtPos.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("pos")rn txtMark97.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("mark_97")rn txtModi_id.Text = DataSet21.Tables("bzj_jbxx").Rows(0).Item("modi_staff")rnrn Catch ex As Exceptionrn Response.Write(ex.ToString)rnrn错误信息是:rnSystem.InvalidCastException: 从类型“DBNull”到类型“String”的强制转换无效。 at Microsoft.VisualBasic.CompilerServices.StringType.FromObject(Object Value) at test.allinfo.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\test\allinfo.aspx.vb:line 119 rnrn应该是空值的转换有问题了rn到底应该怎样解决呢?rn
Mybatis查询返回map数据
mybatis返回map列表:dao层List&amp;lt;Map&amp;lt;String,Object&amp;gt;&amp;gt; queryMap();xml层:&amp;lt;select id=&quot;queryMap&quot; resultType=&quot;java.util.HashMap&quot;&amp;gt; select user_id,name from user limit 0,10&amp;lt;/select&amp;gt;返回结果[{nam...
服务端返回List<Map<String,Object>>数据,$http 无法接收
在服务端查询一个list> 类型的数据,返回前端,但是一直报错[ERROR] : TypeError: b.apply is not a function,类型错误,然后查了很多有关list和json相互转换的资料,试了网上查到很多方法,依然无法解决这个问题。。。。   最后在同事的帮助下,找到了这个问题的解决方法,我只简单的写一下重点,本方法写在服务端 * @param request *
如何解析json返回来的数据
我请求服务器之后,返回给我这么一串:rn"verCode":"79","verName":"3.8.2.2","apptime":"2015-11-21","start":"1","tjurl":"http:\/\/down.zndss.com\/apinew\/tjlistnew.php?id=3&page=1","appurl":"http:\/\/app.zndss.com\/update\/dangbeimarket_3.8.2.2_1120_znds.apk","dburl":"http:\/\/app.znds.com\/update\/dangbeimarket_3.8.2.2_1120_znds.dangbei","appdes":"1.\u4f18\u5316\u641c\u7d22\u529f\u80fd\uff1b\r\n2.\u4f18\u5316\u7f51\u7edc\u6570\u636e\u52a0\u8f7d;\r\n3.\u4fee\u590d\u6d88\u606f\u529f\u80fd\u5df2\u77e5BUG\u3002\r\n\r\n\u7248\u672c\uff1a3.8.2.2\r\n\u5927\u5c0f\uff1a5.67MB\r\n\t"rnrn我要取中间的appurl 的值,问一下我该如何实现!
String格式map还原成map
public static Object getValue(String param) { Map map = new HashMap(); String str = &quot;&quot;; String key = &quot;&quot;; Object value = &quot;&quot;; char[] charList = param.toCharArray(); boolean valueBegin = false; fo...
EasyUI条件查询 mybatis接收Map 查询
前端页面 &amp;lt;div class=&quot;search_style&quot;&amp;gt; &amp;lt;ul class=&quot;search_content &quot;&amp;gt; &amp;lt;li style=&quot;margin-right:20px;float: left;line-height: 30px&quot;&amp;gt;&amp;lt;label class=&quot;l_f&quot;&amp;gt
本地保存List(Map(String, String))数据及JSON的一些用法
直接上代码,代码中对一些疑惑都有注释public class PreferencesUtil { /** * 用SharedPreferences保存List(Map(String, String))数据 * @param context 上下文 * @param key 键 * @param datas 数据 */ public sta
mybaits传入List(Map(String,String))批量插入
今天折腾了一天网上查了各种资料终于解决了,其实很简单,贴代码 &amp;amp;lt;insert id=&amp;quot;saveApp&amp;quot; parameterType=&amp;quot;java.util.HashMap&amp;quot;&amp;amp;gt; INSERT INTO tb_busine_app ( ID, //表中字段 ) VALUES ( &amp;a
jsp页面接收不到action返回来的json数据
rn <%@ include file="/common/taglibs.jsp"%>rnrnrn Pagination 分页表格rn<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>rn rn rn rnrn rn rn rn rn rn rn rn 回复留言rn 删除 rn rn rn 未处理rn 已处理rn rn rn rn rn rn rn rn rn rn rn 问题ID rn 父ID rn 回答人ID rn 回答人 rn 内容rn 状态rn 创建日期 rn rn rn 回复留言rnrn rn rnrnrnrnaction代码rn public String getQuestion() throws Exceptionrn String fvQstate = this.getRequest().getParameter("fvQstate");rn String sql="";rn if (StringUtils.isBlank(fvQstate))rn sql="select distinct FV_QSTATE from brw_question where FV_QSTATE= "+fvQstate;rn rn brwQuestionList=questionServer.findBySQLList(sql);rn this.jsonForm.setSuccess(false);rn this.jsonForm.setData(brwQuestionList);rn this.jsonForm.setSuccess(true);rn log.info(brwQuestionList.size());rn return SUCCESS;rnrn能查到数据,但页面接收不到值
数据库查询结果封装List<Map<String,String>>
今天在做一个报表时犯了个错误,数据库是mysql,有一个字段类型是int型, 我想直接用hibernate框架的query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP) 属性把结果转成List<Map<String,String>> 的格式返回action层, 但是当我在action层取出数据库类型为int字段的
java中的list《map《string,string》》用法
                        List&amp;lt;Map&amp;lt;String,String&amp;gt;&amp;gt; 有时候连接数据库查询结果可能为List&amp;lt;Map&amp;lt;String,String&amp;gt;&amp;gt;类型。我们先来看下代码。 public static List&amp;lt; Map&amp;lt;String,String&amp;gt; &amp;gt; show(String sql, S...
将对象转换成Map<String, String>格式
/**      * 将对象转换成Map格式      *      * @param obj      * @return      */     public static Map getNamValMap(Object obj, boolean isSort) {         Map map = null;         if(isSort) {          
mybatis设置string转clob出错
public void setParameter(PreparedStatement ps, int i, Object parameter,rn JdbcType jdbcType) throws SQLException rn CLOB clob = CLOB.empty_lob();rn clob.setString(1, (String) parameter);rn ps.setClob(i, clob);rnrn这是转换器中的方法, rn在clob.setString(1, (String) parameter);这句报错,rn报Caused by: java.lang.AbstractMethodError: oracle.sql.CLOB.setString(JLjava/lang/String;)Irnrn大婶们帮忙看下rnrn
Java1.8 json string 转换相关整理(二)
package com.chenjia.test; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; public class jsontest {     public static void main(String[] args) {         // T
List、String、Map相互转换
0 参数   private static final String SEP1 = " "; private static final String SEP2 = "|"; private static final String SEP3 = "="; 1 String转换Map /** * String转换Map * * @param mapText
将map转为String
Map&amp;lt;String, Object&amp;gt; result = photoServiceImpl.newreqWxPrePay(reqMap, request);;//将map转为String String jsonResult = JsonUtil.toJson(result);
String和Map为什么没有变化
[b]第一段代码[/b]rnpublic static void main(String[] args) rn String str = "aaa";rn Map map = new HashMap<>();rn change(str,map);rn System.out.println(str);rn System.out.println(map);rn rnrn static void change(String str,Map map) rn [color=#FF0000]str = "bbb";rn map = null;[/color]rn// map.put("name", "China");rn rnrn[b]main方法执行结果为:rnaaarnrnrnstr依旧是aaa? str作为引用类型, 此时为何没有指向bbbrnmap依旧是?同样map为何没有变成null[/b]rnrn第二段代码rnpublic static void main(String[] args) rn String str = "aaa";rn Map map = new HashMap<>();rn change(str,map);rn System.out.println(str);rn System.out.println(map);rn rnrn static void change(String str,Map map) rn [color=#FF0000]str = "bbb";[/color]rn// map = null;rn [color=#FF0000]map.put("name", "China");[/color]rn rnrn[b]main方法执行结果为:rnaaarnname=Chinarnrnmap变成了name=China而不是之前的? 为什么这个时候又可以改变map[/b]rnrn
【Mybatis】传Map与传String
ShipStatic ship=shipService.getShipInfoBymmsi(mmsi); public interface ShipStaticMapper extends Mapper&lt;ShipStatic&gt; { ShipStatic getShipinfoBymmsi(String mmsi);} &lt;select id="getShipinfoB...
map和string的用法
http://www.cnblogs.com/anywei/archive/2011/10/27/2226830.html
Map和String的相互转化
Java中的Map集合与String的相互转化 代码如下: package com.jianhu.Test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * Map和String的相互转化 * @author yanzc * *...
map转String类型
import java.util.Map.Entry; public String transMapToString(Map map){ Entry entry; StringBuffer sb = new StringBuffer(); for(Iterator iterator = map.entrySet(...
String转map工具
String decrypt = &quot;{IDCARD=123456, SEX=nan, PHONE=18100000001, USERNAME=liuyifei}&quot;; if (decrypt.startsWith(&quot;{&quot;)) { decrypt = decrypt.substring(1, decrypt.length()); } ...
关于String 转map
host:rn iZ23jrn mem_total:rn 77rn num_cpus:rn 2rn osfinger:rn Ubuntu-12.02rnrnrn求救怎么转成map啊,截取也不行。
mybatis如何定义一个数组map接收联查询的数据
比如现在查询是三个表联合查询,返回的数据三个表的字段都有,nhibernate是使用object[]接收,那mybatis如何接收呢?
去重list<Map<String,String>>结果中的某个map属性值
CmsSearchSeoService cmsSearchSeoService = new CmsSearchSeoService();             List> result = cmsSearchSeoService.preSearch(kword);             List> wordList = new ArrayList>();             Set
【Java】关于Map解析List<Map<String, String>>的心得
一、前言 在众多开发的项目中都会建立实体、model等包含了众多的属性和方法的类,但是有的时候就要求查询一个实体中的一部分,返回一个实体会有很多的空字段,非常浪费。这个时候我们可以使用Map 二、举个例子 我要统计新生报到数目和未报到数目,他们在数据库中是用0/1表示的,’是否报到(0/1 否/是)’,所以我就需要通过sql查询出所有0和1的个数各有多少个。查出来后,存储到map中。 我用了如下...
根据list<Map<String,String>>中map的某个属性去重
List> collisionList=new ArrayList>(); List> tmpList=new ArrayList>();         Set keysSet = new HashSet();         for(Map collisionMap : collisionList){             String keys = (String) colli
MyBatis 参数类型为String
mybatis mapper.xml sql 当parameterType为String时任何参数都必须为_parameter正确写法:[html] view plain copy &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;  &amp;lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN...
mybatis collection list string
NULL 博文链接:https://jaychang.iteye.com/blog/2357143
Mybatis 参数为String时报错
这个报错应该是和源码有关系的,先填个坑。先写写解决方法&amp;lt;select id=&quot;findByUuid&quot; resultMap=&quot;TicketResult&quot; parameterType=&quot;String&quot;&amp;gt; select * from t_ticket &amp;lt;where&amp;gt; &amp;lt;if test=&quot;_parameter!=null&quot;&amp;gt; u
jsp 页面String [] 接收表单中文数据
用String puname = new String((request.getParameter("puname")).getBytes("ISO8859_1"));rn可以接收页面的puname的中文,rn那有什么简单的方法让String [] puname = request.getParameterValues("puname")能接收中文
String类型数据接收时带"号解决办法
@RestController public class LoginController { @RequestMapping("/login") public String loginName(){ return SecurityContextHolder.getContext().getAuthentication().getName(); } } ...
new String ?? String("string")??
1。用new String("str");与直接String str1 = "str";有什么区别吗?rn2。数组int[] array1 = array2;后,array1 和array2同时指向一个内存区域,不知道String能不能也这样呢?
String *=String * + String *?
在VC.net中,我如何才可把两个System::String 类型的字符串加起来?rn如:rnrnString * m1;rnString * m2;rnm1=S"ABC";rnm2=S"DEF";rnm1=m1+m1rn?rn我应该怎么办?
mybatis 查询返回map
mybatis 查询返回map,key为某一字段,value为实体类
串口返回来的数据操作
[code=C/C++]rnDWORD WINAPI ComThread510(LPVOID lpParameter)rnrn DWORD dwErrorFlags;rn COMSTAT ComStat;rn DWORD dwByteReadWrite=12;rn char ci[20],CRDataBuff[2048];rn BYTE Buffer[200],RDataBuff[2048];rn const BYTE BhOpF[]=0xEB,0x90,0x04,0x0A,0x10,0x01,0x01,0x21,0x04,0xFF,0x00,0x44;rn memmove(Buffer,BhOpF,12);rn TCHAR cArray[2048] ;rn rn while(TRUE==ComThread510Flag)rn rn PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);rn ClearCommError(hCom,&dwErrorFlags,&ComStat);rn BOOL Err=WriteFile(hCom,Buffer,dwByteReadWrite,&dwByteReadWrite,NULL);rn if (!Err)rn MessageBox(NULL,"发送失败","",0); rn Sleep(50);rn ReadFile(hCom,RDataBuff,200,&dwByteReadWrite,NULL);rn rn sprintf(&cArray[1],"%d",RDataBuff[0]);rnrn TextOut(hdc,0,100,&cArray[1],5);rnrn rn rnrnrn[/code]这是我写的一个串口读写的线程,但是收回来的是16进制的字节,怎么样转成十进制的,再显示到窗口上类?rn比如:RDataBuff[0]=EBrn下面的代码怎么写类
请教:getString()函数 析构string时出错
初学OCCI接口,在使用VS2008 Oracle11g OCCI接口编程时,调用getString()函数时,有时会报错,跟踪了一下,发现好像只要该字段值大于等于16个字符就会报错,其他时候均能正常取到值,请教各位,谢谢!

相似问题

3
intellij idea导入eclipse创建的maven web项目 jar包导入总是报错
1
Error querying database. Cause: java.lang.NullPointerException
1
网上下载的项目-导入ssm小米商城的后台项目访问登录界面login的时候无法跳转到其他页面是怎么回事?
3
急!!!使用shiro+ssm时自定义Realm项目运行报错
1
springboot整合kafka,kafka已正常加载,但是consumer的listner不执行。
6
mybatis 执行带多行sql 查询语句
5
mybatis 如何用update修改关联表Service业务层怎么实现
2
mybatis 修改关联表报错
2
两天了mybits神奇的报错 不知道哪里出了问题 csdn办法都试过还是不行 最简单的部署mybits测试类查询
3
Map<String,String>接收到了mybatis查询的数据,并且能够获取到里面的int类型的值
1
一个ssm项目只给了映射文件,需要我创建数据库,但是有些问题,
1
mybatis调用Oracle存储程序报SQL命令未正确结束
1
org.springframework.beans.factory.UnsatisfiedDependencyException
2
MyBatis-plus分页条件自定义查询的问题
2
org.apache.ibatis.exceptions.PersistenceException怎么解决?
2
SSM整合运行Tomcat报错org.springframework.beans.factory.BeanCreationException
2
mybatis 或 mybatis plus 查询返回null对象的问题怎么解决
2
mybatis。要求查询结果返回一个Map,Map的key为两个字段拼接的值,value为整条记录对应的对象
2
mybatis 一对一嵌套查询,并没有执行两次sql
5
centos7下,tomcat启动成功,但页面无法访问