Mybatis 接收sql语句单个简单类型的输出及别名问题

本文详细介绍了如何在Mybatis中使用Mapper接口的抽象方法执行SQL语句,重点讲解了resultType的作用,包括指定返回值类型、自定义实体类型别名以及内置的Java类型别名。
摘要由CSDN通过智能技术生成

1. 接收方法

1.1 Mapper接口中的抽象方法

int selectEmpCount();

1.2 SQL语句

<select id="selectEmpCount" resultType="int">
  select count(*) from t_emp
</select>

Mybatis 内部给常用的数据类型设定了很多别名。 以 int 类型为例,可以写的名称有:int、integer、Integer、java.lang.Integer、Int、INT、INTEGER 等等。

注意:

  • resultType标签用来指定sql语句查询结果返回值的类型
    • 如果简单类型,resultType的值可以为全类名或别名(Mybatis已经帮我们定义好了,可以直接使用),例如:java.lang.Integer或int
    • 如果是自己定义的实体类型,那么可以写全类名或别名,但别名需要我们自己设置
    • 如果是返回集合类型,写范型类型即可

2. 别名问题

2.1 自定义类型别名

如果sql语句的返回结果是我们自定义的实体类型,那么resultType中我们就要写实体类的全类名,比较复杂。但是如果我们为该实体定义了别名,那么就可以直接使用别名,让代码更简洁。

类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。例如:

<typeAliases>
  <typeAlias alias="Author" type="domain.blog.Author"/>
  <typeAlias alias="Blog" type="domain.blog.Blog"/>
</typeAliases>

当这样配置时,Blog可以用在任何使用 domain.blog.Blog 的地方。

也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:

<typeAliases> <package name="domain.blog"/> </typeAliases>

每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。见下面的例子:

@Alias("author")
public class Author {
    ...
}

2.2 Java 常用类型别名

下面是Mybatis为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格。

别名映射的类型
_bytebyte
_char (since 3.5.10)char
_character (since 3.5.10)char
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
char (since 3.5.10)Character
character (since 3.5.10)Character
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
bigintegerBigInteger
objectObject
object[]Object[]
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值