mybatis 或 mybatis plus 查询返回null对象的问题怎么解决 5C

查询条件字段 都为 null 的话 不会返回带字段的空对象,而是直接返回个null

例如

@Select(" SELECT name,age FROM t_student WHERE id = #{id} ")
   List<Map<String,Object>> getList(String id);
假如有两条记录
第一条:name: null , age: null
第二条:name: bob, age: 11 

返回的结果

"data": {
        "student": [
                null,
                {
                    "name": bob,
                    "age": "11"
                }
        ]
}

如何让结果变成以下格式:

"data": {
        "student": [
                {
                    "name": ,
                    "age": 
                },
                {
                    "name": bob,
                    "age": "11"
                }
        ]
}

2个回答

用一个json替换value值方法,null换成“”。

springboot的话,加这行配置进去。mybatis.configuration.call-setters-on-nulls=true
xml配置的话设置这个<setting name="callSettersOnNulls" value="true"/”

g123321dad
放荡伤心 亲测有效
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于mybatis查询返回null
最近遇到一个问题,在数据库写sql查询是有数据的,但是debug返回值确是null,百度了,,,然后仔细核对mapper文件的配置后发现,mapper中用了别名,as date,但是返回的实体类的参数是StartDate,改成和实体类一致后就正常了,另外注解形式注入参数,不写resultParam也是可以的!
mybatis查询返回的对象不为null,但是属性值为null
返回的对象不为null,但是属性值为null 代码如下: &lt;resultMap id="BaseResultMap" type="com.xxx.xxx.dao.model.MerchantUser"&gt; &lt;id column="MU_ID" jdbcType="BIGINT" property="muId"/&gt; &lt;result colu...
mybatis sql查询返回null的问题
我是将查询的数据放到对象里面rn[code=java]rnmap.put("eventid", eventid);rnEventHistory last=dao.findLastEventId(map2);rn[/code]rn这是daorn[code=java]rn public EventHistory findLastEventId(Map map2);rn[/code]rn这是mapper的sqlrn[code=java]rnrn select * from event_history where submit_time=(select max(submit_time) from event_history) and eventid=#eventidrn rn[/code]rn断点后到last这里返回的是null,是不是mapper的查询不是这样写的?
MyBatis返回对象问题
StudentMap指定resultType="Student",parameterType="java.lang.String" sql语句为select * from Student where stunum=#stunum。我想知道MyBatis怎么能将查询出的一行Student信息的每一栏对应实体对象的每个属性。MyBatis又没有像Hibernate可以配置映射文件?新手求教学
mybatis plus查询注意事项
1、代码中尽量不要出现 update(Object,whereQuery); 因为不利于后面的维护,Object只是赋值,有一些Boolean ,int会有初始值,即使没有set,也会把这些值更新掉 2、使用or在外面加括号 QueryWrapper&lt;ProductInfoPO&gt; queryWrapper = new QueryWrapper&lt;&g...
MyBatis 包含字符串列表查询SQL返回NULL问题的解决
MyBatis中涉及到字符串列表的查询,比如: SELECT max(age) FROM t_users WHERE name in ('zhangsan', 'lisi', 'wangermazi') 一种MyBatis XML写法是: &amp;amp;lt;select id=&amp;quot;findMaxBirthday&amp;quot; resultType=&amp;quot;java.util.Date&amp;quot; &amp;amp;gt; ...
mybatis mybatis plus怎么忽略映射字段
其实mybatis plus是比mybatis优秀的mybatis有的,他全有,它没的,或者不优秀的地方,mybatis plus全优秀,所以晚的总比早的好。 今天要说的是: 忽略字段问题,我被这个坑了好长时间,我开发项目呐有个需求是忽略数据库中字段,但是实体类还要有,我操,我目前的知识告诉我,@Transient这个是很好的选择,我操,我于是,开始搞,忘了说了,我的数据库中间件是mybatis ...
Mybatis 查询返回集合
Mybatis 查询返回集合 返回List集合时,需要将resultType的值定义为集合中元素类型,而不是返回集合本身。 有时候,我们不需要整个表的所有字段,而是只需要某一个字段的内容,比如:我希望从资产表中查出所有资产的名称,并且不存在重复。 &amp;lt;select id=&quot;groupNameList&quot; resultType=&quot;java.lang.String&quot;&amp;gt; SELECT `asse...
mybatis一对多查询返回
mybatis一对多查询返回定义实体类Mapper.xml文件Mapper.java文件 定义实体类 InventoryVO 和InventoryDetailVO是一对多的关系。 @Data public class InventoryVO { /**收发 1: 收 0:发**/ private String inOrOut; /**发生日期**/ private ...
mybatis 查询返回map集合
Map&amp;lt;String, CourseDto&amp;gt; allUserGroupCourseMap = courseService.getUserGroupCourseMapByUserIds(user.getId()+&quot;&quot;);   /** * 获取用户小组课程信息 结果集map以 userId_CourseId 为key 以 CourseDto为value * @param ...
mybatis 查询返回map
mybatis 查询返回map,key为某一字段,value为实体类
iMybatis-3.60.jar或Mybatis plus插件
iMybatis-3.60.jar或Mybatis plus插件,Idea安装mybatis插件后,将该包解压,放入对应的目录下。一般目录在C:\Users\admin\.IntelliJIdea2018.1\config\plugins\MyBatis\lib下。将该目录的对应三个包先备份到其它目录(防止破解失败,导致idea启动失败)。 将压缩包中的三个JAR替换到该目录下。重新启动可破解成功。
mybatis查询结果集,返回List的对象集合
mapper接口中写的方法的返回值为List的对象数组   首先需要在mapper.xml中映射一个resultmap,column为类中的属性也就是表中所对应的字段。 代码如下: &amp;lt;resultMap id=&quot;seeShare&quot; type=&quot;com.example.demo.entity.Diary&quot;&amp;gt; &amp;lt;id column=&quot;id&quot; proper...
mybatis (一)对象的查询
才开始接触mybaties 甚是尴尬,很简单的东西都不会做。 一、对象的查询 问题:一个类中存在一个对象,需要进行查询所有数据,查询查不出来对象的属性。需要在关联查询对象属性的字段。 代码如下: bean: /** * Copyright &amp;amp;copy; 2012-2016 &amp;lt;a href=&quot;https://github.com/thinkgem/jeesite&quot;&amp;gt;...
MyBatis查询嵌套对象
The association element deals with a "has-one" type relationship. For example, in our example, a Blog has one Author. An association mapping works mostly like any other result.
Mybatis级联查询对象为null
记录自己一次二13的过程 SELECT a.reader AS "Reader", a.ispay AS "ispay", location.name AS "Name", location.position AS "position" FROM reading a  LEFT JOIN location location ON location.number = a.number
关于mybatis返回单一对象或对象列表的问题
关于mybatis返回单一对象或对象列表的问题一.说明 返回数据类型由dao中的接口和map.xml文件共同决定。另外,不论是返回单一对象还是对象列表,***map.xml中的配置都是一样的,都是resultMap=”***Map”或resultType=“* .* .*”类型. 每一次mybatis从数据库中select数据之后,都会检查数据条数和dao中定义的返回值是否匹配。 若返回一条数据,d
mybatis查询对象嵌套对象
public class CompanyDetail extends DataEntity{         private String id;         private String companyId;         private String name;        private String shortName;       private Date establishDa...
Mybatis查询可能为null
查询字段值可能为null 也可能不为null &amp;lt;select id=&quot;select&quot; resultMap=&quot;BaseResultMap&quot;&amp;gt; select &amp;lt;include refid=&quot;Base_List&quot;/&amp;gt; from DIC_BIZ_ITEM_PERFORMANCE WHERE 1=1 &amp;lt;choose&amp;gt; ..
mybatis返回对象为null或者0的问题
mybatis里select语句, 档数据库里double类型字段为null时,该字段在对象里的值默认为0。找了半天,发现是基础知识的问题。 原来我在对象里new的double是基础数据类型double,值为null时默认值为0。将其改为包装类Double,值为null时默认值为null。 基础知识:基础数据类型默认值为0,对象默认值为null,布尔值为null
解决mybatis插入null方案
一、指定插入值得jdbcType,将sql改成 insert into user(id,name) values(#{id,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR})  二、在mybatis-config.xml配置文件中添加: &amp;lt;configuration&amp;gt; ...... &amp;lt;settings&amp;gt; &amp;lt;setti...
关于mybatis查询后显示null的问题
sql:rnrn SELECT T1.BID_ITEM_NO,rn T1.BID_ITEM_NAME,rn T1.MAT_ID,rn T1.MAT_NAME,rn T1.NEGO_PRICE,rn T1.NEGO_COUNT AS MAT_MASS,rn T2.BSJJ AS SUPPLIER_NUMBER,rn T2.USER_NAME AS createdByName,rn T2.CREATED_DT AS CREATED_DTrn FROM (SELECT A2.CREATED_DT,rn A3.USER_NAME,rn T.BID_ITEM_NO,rn T.BID_ITEM_NAME,rn T.MAT_ID,rn T.MAT_NAME,rn COUNT(T.MAT_ID) AS BSJJrn FROM SUPPLIER_ITEM_SUB_MAT Trn LEFT JOIN BASE_BID_ITEM_SUB A2rn ON A2.BID_ITEM_NO = T.BID_ITEM_NOrn LEFT JOIN CTL_USER A3rn ON A3.USER_ID = A2.CREATED_BYrn WHERE A2.BID_DEPT = #params.comIdrn AND A2.BID_STATE = 'YJ34'rn AND T.QUOTED_PRICE != '0'rn AND a2.bid_award_time >= #params.bidStartDatern AND a2.bid_award_time <= #params.bookReleaseTime rn GROUP BY T.BID_ITEM_NO,rn T.BID_ITEM_NAME,rn T.MAT_ID,rn T.MAT_NAME,rn A2.CREATED_DT,rn A3.USER_NAME) T2rn LEFT JOIN GIVE_ITEM_SUB_MAT_INF T1rn ON T2.BID_ITEM_NO = T1.BID_ITEM_NOrn AND T2.MAT_ID = T1.MAT_IDrn LEFT JOIN BASE_BID_ITEM_SUB T3rn ON T3.BID_ITEM_NO=T1.BID_ITEM_NOrn WHERE T3.bid_award_time >= #params.bidStartDatern AND T3.bid_award_time <= #params.bookReleaseTimern AND t3.bid_state='YJ34'rn AND t3.BID_DEPT = #params.comIdrn ORDER BY T2.CREATED_DTrn rnrn rn 其他的就忽略了rn rn rnrn其他实例就不一一列举了,其中CREATED_DT对应的实例:rnprivate Data createdDt; //创建时间rn原sql在数据库中查询所有字段都是有值的,但是java获取后到map后,字段CREATED_DT就显示为null(字段类型为date)rn吊大的帮忙分析分析哪有错!!rn
自定义MyBatis返回Map对象
最近一个项目要进行重构,需要把之前的ibatis转为mybatis,其中有几个方法是需要返回一个Map对象,我就到网上找方法,但找了半天,发现网上的好多都是同时指定Map的Key和Value,但现在项目需求是指指定Key值,而Value为实体类,于是我就把网上的方法进行了改善,代码如下: 1、MapParam.java 需要mybatis返回Map时需要指定参数类型为MapParam,可以通过
Mybatis查询语句返回对象和泛型集合
Mybatis查询语句返回对象和泛型集合
MyBatis查询单表返回List
本来以为把List 封装在一个javabean里,然后在映射文件里配置一个然后利用进行封装就好了,确实可以,但是也比较麻烦,查了一下百度发现也没什么例子可以直接返回List 后来才知道只需要配置一个resultMap就好了 select * from student limit #{f},#{r} L
Mybatis查询之返回特定的字段
查询某个特定字段的时候,如果返回BaseResultMap则返回的是实体类的所有属性,只想要返回特定的属性怎么办? 网上看了一下,有这么一种方式。 要用 List&amp;lt; Map&amp;lt; String, Object &amp;gt; &amp;gt;来接收。 后来发现了另外一种方式同样也可以达到想要的效果,即直接返回map类型。同样需要 List&amp;lt; Map&amp;lt; String, Object ...
Mybatis 查询返回List集合
Mybatis 查询返回List集合
Mybatis 查询时返回主键id
直接上图: 博主原创,转载请注明出处: https://blog.csdn.net/qq_36698956 版权声明:博客对我来说是记忆的笔记和知识的分享~此博文为博主原创转载请注明出处即可~   ...
解决mybatis在oracle中null的问题
使用mybatis时遇到Error setting null parameter异常,常用的解决方式是在sql中指定jdbcType,这样的写法感觉有点罗嗦,后来参考spring jdbc中的实现方式,改写了mybatis中的BaseTypeHandler类,经测试ok。 以下是修改的类文件,修改的地方为19 ~ 36行。   package org.apache.ibatis.type; ...
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...
Mybatis 查询结果返回 Map
map - String, ObjectMyBatis的SqlSession中只有selectMap(String statement, Object parameter, String mapKey),此方法将结果集中指定字段作为key,value则是结果集列表的元素对象们; 创建对象类 public class CountPO { private String companyId;
Mybatis mybatis插入数据返回主键
前言:最近的开发中,使用mybatis框架开发,使用insert插入数据后返回的对象居然没有返回自增长的主键id,这就比较难受了。以前使用hibernate开发,save之后返回的对象都是直接带的,直接getId就可以把主键id获取到,但是mybatis就不可以了。后来查看了一下资料,才知道mybatis返回主键id需要配置的,这里记录一下,给自己一个补充。一、mysql数据库配置1.主键为自增时(
mybatis查询对象集合注意事项
mybatis查询对象集合注意事项
MyBatis的criteria的or(或查询)语法
其中 TInnetstoragebDao继承了TInnetstoragebMapper;
Mybatis查询语句返回的对象中部分字段为null(空)
sql是正确的,但是商品这个对象只有price(价格),stock(存量)是有值的,其他的都没有. 我自己的解决办法是:不使用resultType(问题很多),而是使用resultMap. 下面是我的应用场景和解决思路. /** * 商品 */ public class Goods { /** * 商品id */ private Integer go...
Mybatis 查询返回不对 无法返回List
一直报Mapped Statements collection does not contain value forXX的错误,按理来说它应该会返回listm类型,但是一直报错rnrnXML的代码[code=java]rn SELECT DISTINCT jobid from workrn rn where companyid = #companyidrnrn [/code]rnrn接口代码rn[code=java]List getDistinctJob(String companyid);[/code]
mybatis 返回主键问题
id=“insertReturnKey” parameterType=“org.carddoc.common.entity.CardInfoEntity” useGeneratedKeys=“true” keyProperty=“cardid” keyColumn=“cardId” 返回自增主键是返回到你传的那个对象中的主键,不是返回到你这个方法操作结果中 ...
mybatis返回的列表含有null值
问题:mybatis selectList接口,返回一个List 对象列表;rn查询出的结果 list.size()>0 遍历的时候发现有一个item是nullrnrnsql 类似rn select id,c1,c2,c3, max(id) as max_idrn from tab_1rn where .....rn
mybatis selectOne总是返回null。郁闷
看书练习的时候使用selectOne总是返回null,不知道什么原因,大神们看看。这是怎么回事儿?rnJAVA代码rn[code=java]rnVisitingModel visitingModel = (VisitingModel)sessionTemplate.selectOne("com.lag.lingzhi.visiting.dao.VisitingDao.getVisitingList",1);rn[/code]rnsql语句rn[code=text]rnrn SELECT * FROM VISITING_MODEL_TABLE VMT WHERE VMT.V_ID = #vIdrn rn[/code]rn日志显示sql已执行rn[code=text]rn2014-05-11 16:37:51,044 DEBUG [http-8080-3] (DataSourceUtils.java:110) - Fetching JDBC Connection from DataSourcern2014-05-11 16:37:51,515 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - Creating SqlSession with JDBC Connection [jdbc:mysql://localhost:3306/lingzhi, UserName=root@localhost, MySQL-AB JDBC Driver]rn2014-05-11 16:37:51,520 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - ooo Connection Openedrn2014-05-11 16:37:51,527 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - JDBC Connection [jdbc:mysql://localhost:3306/lingzhi, UserName=root@localhost, MySQL-AB JDBC Driver] will not be managed by Springrn2014-05-11 16:37:51,537 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@10a234] was not registered for synchronization because synchronization is not activern2014-05-11 16:37:51,742 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - ==> Executing: SELECT * FROM VISITING_MODEL_TABLE VMT WHERE VMT.V_ID = ? rn2014-05-11 16:37:51,742 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - ==> Parameters: 1(Integer)rn2014-05-11 16:37:51,771 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - <== Columns: v_id, v_area, v_agency, v_intoDate, v_outDate, v_personNum, v_adviser, v_customer, v_sex, v_phoneNum, v_customerArea, v_askType, v_frequency, v_customerFrom, v_messageFrom, v_likeType, v_compareCar, v_likeLevel, v_introduceType, v_askPrice, v_tryDriver, v_saveMessage, v_sendfor, v_buyCar, v_remarksrn2014-05-11 16:37:51,779 DEBUG [http-8080-3] (JakartaCommonsLoggingImpl.java:27) - <== Row: 1, 2, 3, 2014-05-10 00:00:00.0, 2014-05-10 00:00:00.0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25rn2014-05-11 16:37:51,786 DEBUG [http-8080-3] (DataSourceUtils.java:332) - Returning JDBC Connection to DataSourcern[/code]rn还想看什么了的,说出来我再贴上。rn
mybatis如何处理返回实体类屏蔽null
sql和配置 添加callSettersOnNulls这个属性没起作用rn```rn rn select tc.class_id,c.`name` from(rn select * from sys_teacher where user_id = #user_id,jdbcType=BIGINT) t left join rn sys_teacher_class_subject tc on t.id = tc.teacher_id rn left join sys_class c ON tc.class_id = c.idrn where c.`status` = 1rn rnrn rn rn rn rn rn rn rn rn```rn返回的LIST rn```rnList classList = classs.selectClassIdByUserId(Long.parseLong(uid));结果如下:rnrn [SysClass [id=null, name=小学二年级(1)班, schoolId=null, school=null, gradeId=null, remark=null, academicYear=null, status=null, chargeTeacherId=null, grade=null, chargeTeacher=null, students=null], SysClass [id=null, name=小学二年级(2)班, schoolId=null, school=null, gradeId=null, remark=null, academicYear=null, status=null, chargeTeacherId=null, grade=null, chargeTeacher=null, students=null]]rn```rnrnrnrnrnrnrn
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件