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 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格。
| 别名 | 映射的类型 |
|---|---|
| _byte | byte |
| _char (since 3.5.10) | char |
| _character (since 3.5.10) | char |
| _long | long |
| _short | short |
| _int | int |
| _integer | int |
| _double | double |
| _float | float |
| _boolean | boolean |
| string | String |
| byte | Byte |
| char (since 3.5.10) | Character |
| character (since 3.5.10) | Character |
| long | Long |
| short | Short |
| int | Integer |
| integer | Integer |
| double | Double |
| float | Float |
| boolean | Boolean |
| date | Date |
| decimal | BigDecimal |
| bigdecimal | BigDecimal |
| biginteger | BigInteger |
| object | Object |
| object[] | Object[] |
| map | Map |
| hashmap | HashMap |
| list | List |
| arraylist | ArrayList |
| collection | Collection |
本文详细介绍了如何在Mybatis中使用Mapper接口的抽象方法执行SQL语句,重点讲解了resultType的作用,包括指定返回值类型、自定义实体类型别名以及内置的Java类型别名。
1084

被折叠的 条评论
为什么被折叠?



