在MyBatis中,tinyint和integer都是数据库中常用的数据类型,它们之间的区别在于存储的范围和长度不同。 tinyint:是一种较小的整数类型,通常占用1个字节(8 bits),范围为-128到127。在数据库存储时,通常用来表示布尔值,即0或1。 integer:是一种较大的整数类型,通常占用4个字节(32 bits),范围为-2147483648到21474...
如果id在实体类中是用int表示,那<if test="title != null">的判断是恒为真的。无法达到动态拼接的效果。 如果用integer表示,当id缺省时会被初始化为null这样这条动态sql才能按照我们的预想运行。 integer缓存 此外,integer与int的区别还需要注意的是:因为integer是引用类型所以对其大小进行比较时不能使用等号. int...
在往常敲代码的时候没有留意过int和Integer的区别,今天在敲代码的时候,ORM框架使用的是Mybatis,一个简单的查询,返回查询的条数。当查询为null的时候,就报错了。 二、报的错误 试图从具有原始返回类型(int)的方法返回null org.apache.ibatis.binding.BindingException: Mapper method 'com.dmsdbj.itoo.basicInfo.dao...
1 首先,使用mybatis进行数据库查询时,返回类型如何配置呢?mybatis提供了resultType与resultMap两个属性,在每条查询语句中,二者不能同时使用。下图是mybatis官网对两个属性的解释:2 可以得知,如果仅仅是返回integer类型的话,可以使用resultType即可。resultType的值可以是“java.lang.Integer”或者是 “int”或 “in...
返回类型设置为封装类型Integer或者基本类型int,都有可能出错 例如 select sum(p.CASH_FEE) from PAY_INFO p where 1=1 and p.TRADE_RESULT_CODE = #{traderesultcode} 我用的Oracle 利用 nvl()函数 解决问题 select nvl(sum(p.CASH_FEE), 0) from PAY_INFO p wherehttp:// 1=1 and ...
以Integer为例 代码语言:javascript 复制 /** * @author Clinton Begin */publicclassIntegerTypeHandlerextendsBaseTypeHandler<Integer>{@OverridepublicvoidsetNonNullParameter(PreparedStatement ps,int i,Integer parameter,JdbcType jdbcType)throws SQLException{ps.setInt(i,parameter);// 实现参数的绑定}@Overridepublic...
/*** 主键字段*/@TableId(type= IdType.AUTO)//根据数据库类型设置自增privateInteger id; 如上所示,自增主键为integer类型,对应数据库列类型为int,如果不加这个配置的话,如下面代码所示,默认将跟随全局,如果你的数据库是int类型且自增的话,那么mybatis-plus会默认插入Long类型的自增id,导致报错,当然你可以考...
parameterType 属性:代表传入的参数类型,这里是 int (或 Integer)类型 resultType属性:代表返回结果类型,这里指定返回一个 hashMap 类型的对象,mybatis 会把查询出来的数据表记录对应的 '字段列名 - 字段值',自动映射为 map 集合的key - value。 当然如果你不希望通过 hashmap 来接收查询结果,允许你自由指定返回类...
在获取到IntegerHandler后,我们就可以使用IntegerTypeHandler的setInt方法,对SQL语句中的参数进行替换。如图14中的代码所示,SQL语句被成功替换: 后续就是执行SQL并处理返回结果,这就不在本文的讨论范围内了。从上文的分析中,我们可以了解到,在3.2.3及以下版本,MyBatis会忽略parameterType,在真正进行SQL转换时,重新根据SQ...
图13 获取IntegerHandler 在获取到IntegerHandler后,我们就可以使用IntegerTypeHandler的setInt方法,对SQL语句中的参数进行替换。如图14中的代码所示,SQL语句被成功替换: 图14 IntegerHander值替换 后续就是执行SQL并处理返回结果,这就不在本文的讨论范围内了。从上文的分析中,我们可以了解到,在3.2.3及以下版本,MyBati...