【mybatis】如果程序中查询sql结果为空,会返回null还是空集合

就是java中用mybatis进行一个select查询,返回的结果是对象List,假如这个时候查询的数据正好没有,
请问返回的结果是null还是空的List

-4

6个回答

刚刚测了一下,返回空的list

1

看你sql语句有没有full join 如果有的话就返回一个全为null的一条数据,没有就返回一个空的list。空list你读取的时候因为里面没数据,所以读取的是null

2

这种自己写一个sql语句试一下就行,首先保证sql查询结果为空,然后在java中运行,自己亲测一遍,印象更深。

1
看你接收的对象
(1) 如果你new了一个对象,并且实例化,如List<Object>list=new ArrayList<Object>() ,list=searchXXX();那么返回结果是一个空的list,也就是list.size=0
(2) 如果你直接把查询结果给未初始化的变量,如 List<Object>list=search();那么list值为null


1
qq_33044839
一道闪电 你的答案应该是错误的,你可以自己试试看
8 个月之前 回复

spring+mybatis实测
直接从mapper返回的list是一个没有内容、size为0的对象,也就是[],不为null

1

可能是你用了连表查询 例如 a left join table b 但是呢, 你查的是 b.* , 假如 b*没有数据 但是a.*有数据 ,此时会返回 [null] ,
size 为>0 ,, 如果去查条数,其实是按照 a表条数来的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MYSQL查询结果为空或null就返回"null"
SELECT if(IFNULL(superorgcode,&quot;&quot;)=&quot;&quot;,&quot;null&quot;,superorgcode) superorgcode FROM `tborg` 
注意mysql的not in查询值中存在null值时返回的查询结果会一直为空
现在有数据库表是当我们使用这样的查询语句时:select * from user where username not in ( select username from user where id != 2 )这时子查询的结果包含了null值,所以结果会一直返回空查询,而不会返回预期的id为2这一行我们可以稍微修改一下查询形式:select * from user where usernam...
mybatis查询结果为空,但是SQL DEVELOPER中能查询到
被这个问题困惑了一下午,把MyBatis的配置文件,映射的配置文件全部检查了好几遍,拿运行成功的代码对比也找不到差错。 最后发现是因为新增的数据没有提交事务,写下这篇博文给自己以后提个醒。 再记一个枚举类的小问题; 这里在name后面多敲了一对括号,在调用getName方法的时候返回的是FEMALE 把这对括号去了之后,在调用getName方法就正常返回“女”了...
查询结果为空的返回直
如:rn[code=SQL]rnrnselect num1 from biao1 where 条件rnrn[/code]rn其中NUM1为decimal型,按条件查询不出这行,有就是数据库中没有符合条件的行,什么也查不出来,但是在这种情况下我想查询出的直为0,怎么写?rnrnPS:select isnull(num1,0) from biao1 where 条件 不能实现
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查询语句返回的对象中部分字段为null(空)
sql是正确的,但是商品这个对象只有price(价格),stock(存量)是有值的,其他的都没有. 我自己的解决办法是:不使用resultType(问题很多),而是使用resultMap. 下面是我的应用场景和解决思路. /** * 商品 */ public class Goods { /** * 商品id */ private Integer go...
踩坑系列—mybatis查询没有数据时返回的list是null还是空集合?
场景: 根据多个条件查询,返回list集合数据 代码: // 第1步:根据页面多个条件查询 List&amp;amp;lt;Base&amp;amp;gt; list = userDao.queryOrders(queryParams); if(null == list) return null; //第2步:有数据再追加其他信息 List&amp;amp;lt;Long&amp;amp;gt; ids = new ArrayList&amp;amp;lt;&amp;amp;gt;(l...
关于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...
surfaceview中surfaceHolder.lockCanvas(null)返回为空?
我的一个activity里面有个surfaceView用于画数据图 此外我定义了一个Thread用于接受数据 在activity中我开启这个线程用activity里面的Handler来处理线程返回来的数据并调用画图方法 在surfaceView上画图 但是现在android surfaceHolder.lockCanvas(null)返回值为空 我不知道是为什么 急切求解中..rnrn[code="java"]rn dlThread=new DrawLineThread(this);rn dlThread.start();rnrn /**rn * 绘制图线的方法rn * @author ZHrn * @param ylistrn * 是当前点在Y轴上的坐标值rn */rn void deDraw(List ylist)rn oldX=0f;rn oldY=Float.parseFloat(ylist.get(0).toString());rn oldY=height-(height/(Ymax-Ymin)*(oldY-Ymin)+1);rn Canvas canvas = sfh.lockCanvas(new Rect(0, 0,width rn ,height));// 关键:获取画布 rn canvas.drawColor(Color.WHITE);rn Paint mPaint = new Paint(); rn mPaint.setColor(Color.GREEN);// 画笔为绿色 rn mPaint.setStrokeWidth(1);// 设置画笔粗细rn rn// //如果x超出了控件宽度,跳转到开始位置重新画rn// if(currentX>width)rn// Log.v("tag", "back to the head");rn// oldX=0;//把坐标转到最初位置rn// currentX=oldX+(width/10);rn// canvas.drawColor(Color.WHITE);rn// rn //初始化oldY为控件高度rn if(oldY==-1)rn oldY=height;rn canvas.drawColor(Color.WHITE);rn rn for(int i=1;i"+oldX+"oldY-->"+oldY+"currentX--->"+currentX+"--currentY--->"+y);rn canvas.drawLine(oldX, oldY, currentX, y, mPaint);rn oldX=currentX;rn oldY=y;rn rn sfh.unlockCanvasAndPost(canvas);rn rn rn /**rn * 清楚画布内容rn */rn void ClearDraw() rn Canvas canvas = sfh.lockCanvas(null); //就是在这个地方报NULLPOINTEXCEPTION,我log了一下是因为canvas==null rncanvas.drawColor(Color.WHITE);// 清除画布 rn sfh.unlockCanvasAndPost(canvas); rn rn public Handler graphhandler = new Handler()rn rn public void handleMessage(Message msg) rn rn float point=(float)msg.arg1;rn width=sfv.getWidth();rn height=sfv.getHeight();rn if(pointList.size()<=Xrate)rn pointList.add(point);rn elsern pointList.remove(0);rn pointList.add(point);rn rnrn ClearDraw();rn deDraw(pointList);rn rn ;rn[/code]rn问题处在这一句 rn[color=red]Canvas canvas = sfh.lockCanvas(null); //就是在这个地方报NULLPOINTEXCEPTION,我log了一下是因为canvas==null [/color]
如何使查询结果为空的SQL强制返回一行
查询语句查询出的结果为空,但想要查询结果强制返回一行空的信息,请问该如何操作?rn 栏位1|栏位二|....rn 1. _____|______|....
Springboot mybatis查询结果中某些字段为null
使用springboot mybatis 查询时某些字段为null 看到返回结果以后主要分析了一下情况: 实体类的get、set方法确实 mapper.xml文件中的resultMap、resultType等原因导致 数据库中数据存在问题 经过检查与验证发现以上都不存 在问题,包括代码逻辑也经过几次检查。实在不知道问题所在,于是又去问题的根源查看,详细的查看了查询所得的返回结果,发...
接口调用返回的结果为空
public function login()rn header("Content-Type:text/html;charset=utf-8");rn $user = I('username');rn $passwd = md5(md5(I('password')));rn $url = 'http://daili.ipduoduo.com:33332/api/userinfo';rn $params = array(rn "user" => $user,rn "password" => $passwd,rn );rnrn //初始化rn $curl = curl_init();rn //设置抓取的urlrn if(!empty($params))rn foreach ($params as $key => $value) rn $url .= '?'.$key.'='.$value;rn rn curl_setopt($curl, CURLOPT_URL, $url);rn elsern curl_setopt($curl, CURLOPT_URL, $url);rn rn var_dump($url);die;rn // elsern rn // rn //设置头文件的信息作为数据流输出rn curl_setopt($curl, CURLOPT_HEADER, 1);rn //设置获取的信息以文件流的形式返回,而不是直接输出。rn curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);rn //执行命令rn $data = curl_exec($curl);rn //关闭URL请求rn curl_close($curl);rn //显示获得的数据rn // print_r($data);die;rn //对结果进行美化rn list($header, $body) = explode("\r\n\r\n", $data, 2);rn preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);rn $info['cookie'] = substr($matches[1][0], 1);rn $info['content'] = $body;rn // var_dump($body);die;rn //json强制转化为数据rn $json_array = json_decode($body,true);rn // var_dump($json_array);die;rn echo "pre";rn print_r($json_array['data']['userInfo']['nickname']);rn echo "pre";die;rn if($json_array->status == -1)rn var_dump('密码与账号不一致');die;rn elsern $this->display('Index/index');rn rn
localStorage.getItem为空的取值为null还是“”
var bmid = localStorage.getItem("bmid");rn当第一次加载页面bmid不存在rn问:bmid应该为 null , 还是 “”rn开发时 本地环境测试是为 ""rn而正式环境 却变成 null ,为什么不同环境类型不一样
Mybatis根据时间段查询结果一直为空(在确定有数据时还是为空)
Mybatis使用时间段查询一直为空; 原因: Map,Object> map=new HashMap,Object>(); map.put("beginTime",beginTime); map.put("endTime",endTime); map.put("staruserId",staruserId); map.put("pageSize",pageSize); map.put(
List为null还是为空
在今天调试项目的时候,前端的小伙伴问了我下,当List中没有数据的时候,我传给她的是啥?然后我就测试了一下,详细的过程如下: 1、如果使用list == null,说明这个list不存在,那么应该使用List&amp;lt;T&amp;gt; list = new ArrayList&amp;lt;T&amp;gt;();来创建这个list容器 2、如果使用list.size == 0 || list.isEmpty(),说...
mybatis查询,返回类型为resultType,某些属性值为null
关键字:mybatis resultType  null 原因:返回类型为resultType 时,如果数据库表字段的名称与返回实体对象的名称不同时,会导致返回实体对象中的属性值为null 举例:表格 tb_user    字段 create_time    实体对象 TbUser  属性createTime(如果由generator-mybatis-generator反向生产的话 一
Mybatis 查询结果返回 Map
map - String, ObjectMyBatis的SqlSession中只有selectMap(String statement, Object parameter, String mapKey),此方法将结果集中指定字段作为key,value则是结果集列表的元素对象们; 创建对象类 public class CountPO { private String companyId;
ibatis查询结果为null
我照着ibatis的导读的例子做的,但采用struts+ibatis架构,表rnperson:rnper_id:编号rnper_first_name:第一个名rnper_last_name:最后一个名rnper_birth_date:出生日期,datetimernper_weight_kg:体重rnper_height_m:身高rnrnsqlmap配置文件sql_map_config.xml:rnrnrnrn rn rnrnrnrnrnrnrnrnrnrnrnrnsqlmap映射文件person.xml:rnrnrnrn rn rn rn rn rn rn rnrn rnrnrn rn select per_id as id,per_first_name as firstName,rn per_last_naem as lastName,per_birth_date as birthDate,rn per_weight_kg as weight,per_height_m as heightrn from person where per_id=#value#rnrn rn rn select * from personrn rn rnrnrn insert into person (per_id,per_first_name,per_last_name,rn per_birth_date,per_weight_kg,per_height_m)rn values (#id#,#firstName#,#lastName#,#birthDate#,#weight#,rn #height#)rnrnrnrn update person set per_first_name=#firstName#,rn per_last_name=#lastName#,per_birth_date=#birthDate#,rn per_weight_kg=#weight#,per_height_m=#height#rn where per_id=#id#rnrnrnrn delete from person where per_id=#id#rnrnrnrn我在一个action里调用queryForList,然后赋值给一个List时,竟然报错。rndao的源代码:rnpackage daos;rnimport java.sql.SQLException;rnimport example.domain.*;rnimport com.ibatis.sqlmap.client.*;rnimport java.util.*;rnrnrn/**rn * @author Administratorrn *rn * TODO 要更改此生成的类型注释的模板,请转至rn * 窗口 - 首选项 - Java - 代码样式 - 代码模板rn */rnpublic class PersonDAO rnprivate SqlMapClient client;rnpublic PersonDAO(SqlMapClient client)rnrn this.client=client;rnrnpublic void insert(Person person) rntry rn client.startTransaction();rn client.insert("Person.insertPerson",person);rn client.commitTransaction();rn catch (SQLException e) rn // TODO 自动生成 catch 块rn e.printStackTrace();rnrnrnrnpublic void update(Person person) rntry rn client.startTransaction();rn client.update("Person.updatePerson",person);rn client.commitTransaction();rn catch (SQLException e) rn // TODO 自动生成 catch 块rn e.printStackTrace();rnrnrnrnpublic void delete(int id)rnrn//client.delete("Person.delete",person);rnrnpublic Person findById(int id)rnrnPerson rst=null;rntry rn rst=(Person)(client.queryForObject("Person.getPerson",new Integer(id)));rn catch (SQLException e) rn // TODO 自动生成 catch 块rn e.printStackTrace();rnrnreturn rst;rnrnpublic List findAll()rnrnList list=null;rntry rn list=client.queryForList("Person.getAllPerson",null);rn int i;rn i=0;rn catch (Exception e) rn // TODO 自动生成 catch 块rn e.printStackTrace();rnrnfinallyrnrn return list;rnrnrnrn
SQL查询中,NOT IN (NULL) 返回的为什么是空呢?
SELECT * FROM xxxrnWHERE xx IS NOT NULLrnrn和rnrnSELECT * FROM xxxrnWHERE xx NOT IN (NULL)rnrn有什么区别?为什么后者返回为空呢?
oracle 使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
org.apache.ibatis.binding.BindingException: Mapper method 'com.XXXXX' attempted toreturn null from a method with a primitive return type (int). &amp;lt;select id=&quot;selectPageviews&quot; resultType=&quot;java.lang.I...
使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,会报异常。 例如: select id="getPersonRecordId" parameterType="java.lang.String" resultType="int"> select role_id from p_person_role where stffe_id = #{s
查询结果总为空
不知道这次写程序查询的结果总是为空rn public string strConn = ConfigurationManager.AppSettings["connString"].ToString() + HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"].ToString()) + ";";rn public int executNum(string strsql)rn rn using (OleDbConnection conn = new OleDbConnection(strConn))rn rn using (OleDbCommand cmd = new OleDbCommand(strsql, conn))rn rn tryrn rn conn.Open();rn int rows = cmd.ExecuteNonQuery();rn return rows;rn rn catch (OleDbException e)rn rn throw new Exception(e.Message);rn rn finallyrn rn conn.Close();rn rn rn rn rn #region 管理员登录查询rn // public int adminlogin(string Parameter, string Table, string Para, string GetName)rn public int adminlogin(string Sqlstr)rn rn string strsql = Sqlstr;rn int i = executNum(strsql);rn return i;rn //if (i < 0)rn //rn // return false;rn //rn //elsern //rn // return true;rn //rn rn #endregionrnrn------------------以上为DB文件rn protected void Button1_Click(object sender, EventArgs e)rn rn MyClass logins = new MyClass();rn //int checklogin= logins.adminlogin("kname,kPass", "KUser", "kname", "'" + Qxx + "' and kPass='" + PassW + "'");rn // IDbHelper idbhelper = new DbHelperSQL();rn int checklogin = logins.adminlogin("Select * from YSK_user");rn Label1.Text = checklogin.ToString();rn rn刚开始有参数的总是为空,后来直接Select * from YSK_user,结果返回查询条数仍然为0,程序特简单,而且数据库连接都是对的,表,字段名也正确,数据库权限也没问题。请您帮帮忙,谢谢
查询为空返回什么
查询为空时 返回的是 null 还是 '' 呵呵 大家别笑我~谢过
SQL中表达为空是is null
最近写了个hql语句选择表中某字段不为空的记录,结果查询不到结果。 from ApplyTable a where a.remark!= null  后来发现不为空不能这么表达,要是这样的 is not null 。然后修改hql语句,OK。 from ApplyTable a where a.remark is not null ...
sql查询结果为空是,怎样写判断程序?谢谢
发现一个问题,请高手帮忙,谢谢!rnrn一个sql语句没有查询到结果,rn例如:select c1 from test where id=10(数据库中根本没有id=10的记录)rn那么如何写判断程序呢,我是这样写的,不行rnrnif rs.eof thenrnrs("c1")="空"rnend ifrnresponse.write rs("c1")rnrn判断不生效,写成if rs("c1")="" then,这样写也不行,请指教,谢谢!
Lucene中MoreLikeThis查询结果为空
    本文只是给lucene小白看的,老鸟勿喷    刚开始学lucene,所以直接使用新版的7.1.0,还在搭建helloworld中,使用MoreListThis查询时结果为空,怎么都查询不出数据,百度也找不到答案,而且百度出来的内容都是老版本的。无奈只能自己看源码了。谁有新版本的各种demo请分享下,自己摸索太累了,先谢谢了。    由于用的最新版,找不到demo,所以所有代码都是用的AP...
SQL查询集合返回为[ null,null ]的问题研究
在Java项目中通过Mybatis查询数据库某个表的部分字段,返回值为list&lt;T&gt; 。有时候会出现 [ null ,null ] 现象。 具体原因是查询SQL只提取部分字段,而且这几个字段是 null。 但对于数据库表的其他字段来说,查询却是有值的,只是恰巧你查询的字段为Null。 执行:SELECT * FROM user2 WHERE na...
myBatis 常见问题(一)查询结果字段为null
问题描述:查询认购单详情&amp;lt;select id=&quot;adminGetDatail&quot; resultMap=&quot;SubscriptionPO&quot; parameterType=&quot;com.money56.ifmp.api.module.bm.vo.ProductSubscriptionVO&quot; &amp;gt; SELECT c.real_name,c.phone,c.idcard_no F...
sql中查询类型为int的字段,返回null的异常
sql中查询类型为int的字段,返回null的异常 项目中用mybatis3.x,用sql查询某个表类型为int的字段,那个表是空表,没有数据,结果抛异常了,原因是在对象中的属性为int,空表时,sql查询出来的是NULL,结果赋值时抛异常了。 org.apache.ibatis.binding.BindingException: Mapper method 'getSort'
sql 查询结果为null替换 为 0
 mysql : ifnull( xxx , 0 )  select ifnull(colname,0) from tablename oracle:  NVL(xxx , 0 )
为空时如何返回null
表中信息rnrn李斯 45 英语 rn李斯 语文 rn小李 55 数学 rnrnrnrn显示结果:rn李斯 45 英语 rn李斯 NULL 语文 rn小李 55 数学rnrnrnisnull函数没效果?
mybatis查询类型为int的字段,返回null的异常
当mybtis统计条数返回int类型,会报如下错: org.apache.ibatis.binding.BindingException: Mapper method 'getSort' (xx.yy.cc.DxxDAO) attempted to return null from a method with a primitive return type (int). 报这种错的原因是因为...
MyBatis查询 返回类型为int时,如果返回结果为NULL,则会报异常!
MyBatis查询 返回类型为int时,如果返回结果为NULL,则会报异常。 例如: &amp;lt;select id=&quot;selectStatusByChannelIdAndProdId&quot; resultType=&quot;Integer&quot;&amp;gt; select a.`status` from biz_platform_monitor AS a LEFT JOIN biz_pr...
在PL/SQL中怎样判断查询的结果是否为空
iamlaosong文 在PL/SQL中会经常用到表的查询,然后针对查询结果进行处理。那么怎样判断查询的结果是否为空呢?用count(*)先查一次当然可以,可这样做就会多查询一次,如果仅仅一次倒是无关紧要,可是如果在循环中,那么就会大大延长处理时间,增加服务器负担。 1、只有一个查询结果的查询: select min(to_char(b.arrive_date,'yyyymmdd')||
PL/SQL中出现中文时,查询结果为空
使用PL/SQL成功连接Oracle数据库后,进行数据查询,当查询语句中不含中文时(如:select t.*, t.rowid from cldjs_cb03 t where 字段名称 like '32';),结果正确;但是当语句含有中文时(如:select t.*, t.rowid from cldjs_cb03 t where 字段名称 like '不分品级';),数据库中有数据但是查询结果为空,怎么办???
ASP中SQL查询结果为空如何表示
用什么语句表示SQL查询结果记录为空
返回空集合的SQL 语句怎么写啊?
as title
Mybatis删增没问题,查询出来结果为空
bean中的属性与数据库中的不一致
VB调用SQL查询,怎样判断查询结果为空?
Data1.RecordSource = "SELECT * FROM OFFICER WHERE KFS_NAME='" & DBCombo1.Text & "'" 怎样判断这个语句的查询结果为空?rn或者说,如果查询没有查到结果的话,返回值应该是什么?