ScalarHandler返回的参数

ScalarHandler用来获得聚合函数的值,返回类型是Object,用Number来接收比较好
Number num=qr.query(cntSql.append(whereSql).toString(),new ScalarHandler<>(),params.toArray());然后调用intValue()方法
int tr=num.intValue()即可!

但是,之前我都是用long来接收,进行强转,然后再强转成intlong num=(long)qr.query(cntSql.append(whereSql).toString(),new ScalarHandler<>(),params.toArray());
int tr=(int)num;

虽然不知道为什么可以用long来接收,而不能直接用int来接收,有点小感悟,在不知道返回类型选择的情况下,选择其公共父类来接收,Number为Long Integer等包装类的父类,用父类来接收,然后调用子类重写的方法

同样的,之前遇到一个问题,就是Servlet中四大域获取属性的方法getAttribute(),假设得到的值为value,value是数字类型的字符串,那么只能这样转换成数字类型:request.setAttribute(name,"1");//向域中存入一个数字类型的字符串String value = (String)request.getAttribute(name);int tr = Integer.parseInt(value);而不能直接强转
int value = (int)request.getAttribute(name);//会报错,ClassCastException类型转换异常其实现在想想也好理解,jvm是根据类型来转换的,你传入的是个String类型,最后也只能用String来接收,再转化成int类型!而且基本数据类型不能和引用数据类型进行强转,除了包装类,类之间的强转也需要有继承关系!

原文地址:https://www.cnblogs.com/doveshelly/p/8868420.html

时间: 2024-10-21 10:54:21

ScalarHandler返回的参数的相关文章

Entity Framework 6 Recipes 2nd Edition(10-2)译 -&gt; 返回输出参数

10-2. 返回输出参数 问题 想获取存储过程里的一个或多个输出参数的值 解决方案 假设我们有一个像Figure 10-1所示的,出租车辆与租金收入的模型 Figure 10-1.出租车辆与租金收入的模型 我们想知道在指定日期里,收入了几笔租金和金额, 以及车辆的租凭情况. 存储过程Listing 10-7 就是获取这些信息的. Listing 10-7. A Stored Procedure for the Vehicles Rented, the Number of Rentals, and

JavaScript-4.3函数的参数和返回值,参数数目不确定的函数调用---ShinePans

<html> <head> <meta http-equiv="content-type" vontent="text/html;charset=GB2312"/> <title> 4.3 参数数目不明确的函数调用 </title> <!--脚本部分--> <script type="text/javascript"> function a(){ var str=

存储过程无法得到返回型参数

普遍大家都会用SqlDataReader做返回结果集,但是如果做业务有返回型参数的时候,参数死活都是空值,而存储过程中有此参数的值, 如果用DataTable就没问题了,原因分析是DataReader查询后在返回型参数没有存储之前就已经断开连接了,所以值没有得到保存,所以为空值. 而DataTable把所有数据都已经存起来了,之后才断开链接,所以值就会被取出来.这个东西真是麻烦,希望大家以后不要走此弯路了.

Cpp 调用sql server 存储过程时不返回output参数解决办法

Cpp 调用sql server 存储过程时不返回output参数,但是在ssms中调用的时候能正常返回,貌似数据库和应用代码是一切正常,再测试用c#调用也能正常获取output参数,在存储过程的的开始加上set nocount on,就能解决这个问题. 墙外原文件:点击打开链接

CAD返回指定参数在曲线上,到开始点的曲线上长度(网页版)

主要用到函数说明: IMxDrawCurve::GetDistAtParam 返回指定参数在曲线上,到开始点的曲线上长度,具体说明如下: 参数 说明 [in] DOUBLE dParam 曲线参数 [out] DOUBLE* pDis 返回到开始点的曲线上长度 js代码实现如下:     var ent = mxOcx.GetEntity("选择曲线:");     if (ent == null)         return;     var curve;     if (ent.

C# 微信图文消息返回多参数地址

微信返回news类型的消息,如果在Url中直接填写诸如 www.yourweb.com/chart.aspx?token=123&area=chengdu 这样的网址的话,到了微信客户端,用户只能收到 www.yourweb.com/chart.aspx?token=123 & 符号之后的其他部分就被截掉了 如果要传递多个参数,需要像下面这样写 www.yourweb.com/chart.aspx?token=123&area=chengdu 另外 如果要传汉字,对汉字部分用Htt

定义一个返回调用参数函数两次的函数的函数

原题是这样: 定义一个过程 Double, 它以一个有一个参数的过程为参数, Double 返回一个过程, 这一过程将原来那个参数过程应用两次.例如, 若 Inc 是个给参数加一的过程, Double(Inc) 将给参数加二. 那么, 下面的表达式会返回什么值: Double(Double(Double(Inc)))(5) 我当时的思路是: using cint = const int; using iFun = function<int(cint&)>; iFun Double (i

函数初识:定义,调用,返回值,参数

一 函数的定义,调用,返回值 1.函数的作用: 封装 减少重复代码 2.函数的书写格式 def 关键字 定义一个函数 def 函数名(): 缩进 函数体(代码块) def func(): print('我') print('爱') print('你') return '1314' #返回值,将内容返回给调用者 #不写return或写了return不写值返回None msg = func() #函数名() -- 调用 print(msg) return返回多个变量是,返回的是元祖形式,返回的内容不

python基础 函数定义 返回值 参数

函数定义 1 #python中函数定义.def函数定义的关键字,fun1函数名,x为函数的形参可以有多个,多个之间用“,”隔开:return 函数返回值的关键字,python中return可以是非必要 2 def fun1(x): 3 x += 1 4 return x 函数返回值 1 # 函数返回值可以有多个,之间使用“’”分隔,返回值讲多个值组成的元组进行返回. 当无return时python会隐式return “None”,如果只返回一个值就返回这个值本身 2 def fun2(x, y)