别名
类型别名(typeAliases)
- 类型别名是为 Java 类型设置一个短的名字。
- 存在的意义仅在于用来减少类完全限定名的冗余。
```xml
<!--可以给实体类起别名-->
<typeAliases>
<typeAlias type="com.rui.pojo.User" alias="User"/>
</typeAliases>
```
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:
扫描实体类的包,他的默认别名就为这个类的类名,首字母小写!
```xml
<!--可以给实体类起别名-->
<typeAliases>
<package name="com.rui.pojo"/>
</typeAliases>
```
在实体类比较少的时候,使用第一种方式。
如果实体类十分多,建议使用第二种方式。
第一种可以DIY别名,第二种则不行,如果非要改,需要在实体类(pojo)上增加@Alias注解
```java
@Alias("author")
public class Author {
...
}
```
我刚刚才发现结果集映射的type写了 查询语句下面就可以不用写
个人我理解:因为resultType映射到下面的查询UserMap里面。结果集里面的type写类名,相当于select里面的类型转到映射里面写了
官方文档
- `resultMap` 元素是 MyBatis 中最重要最强大的元素
- ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
- `ResultMap` 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。
- 如果世界总是这么简单就好了。
<!--结果集映射-->
<resultMap id="UserMap" type="User">
<!--column数据库中的字段,property实体类中的属性-->
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" resultMap="UserMap" parameterType="int">
/*定义sql*/
select * from mybatis.user where id = #{id};
</select>
```