在前面的文章
在这篇文章中,我们来说说
这里我们贴出之前的UserDao对应的mapper文件
如下所示:
insert into user(name,password,age) values(#{name},#{password},#{age}) delete from user where id = #{id} update user set name = #{name}, password = #{password}, age = #{age} where id = #{id}
从这个配置文件中,我们可以看到
我们发现一个问题,那就是这个类名,我们需要写多次,如果要改这个类名的话,我们需要在多个地方进行修改。
很明显,这样配置的话很容易造成修改上的遗漏,同时也书写上也比较麻烦。
因此,MyBatis为我们提供了一个简单方便的配置方法,那就是使用
如上所示,我们在原来的mybatis配置文件中增加了
备注:这里需要注意的是,typeAliases配置需要放置在settings之后,否则会出异常!!!
insert into user(name,password,age) values(#{name},#{password},#{age}) delete from user where id = #{id} update user set name = #{name}, password = #{password}, age = #{age} where id = #{id}
这样即使实体类名修改了,所需要修改的地方也只有一处,便于集中管理。
也许你会有疑问,如果实体类比较多怎么办?还不是要配置很多实体类和别名,NO,NO,NO!下面跟大家说说另一种配置方法。
在这里,我们不再使用
因此,按照上面的配置,我们还需要将实体类做一下调整,如下两种方式所示:
(1)给实体类添加@Alias注解
package com.majing.learning.mybatis.entity; import org.apache.ibatis.type.Alias; @Alias(value="User") public class User { private int id; private String name; private String password; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", password=" + password + ", age=" + age + "]"; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
(2)实体类不加注解的情况下
修改mapper文件中引用的类型别名,改为小写,如下所示:
insert into user(name,password,age) values(#{name},#{password},#{age}) delete from user where id = #{id} update user set name = #{name}, password = #{password}, age = #{age} where id = #{id}
最后想说,mybatis为我们已经实现了很多别名,已经为许多常见的 Java 类型内建了相应的类型别名。
它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
至此,关于别名的全部使用方法这里便介绍完成了,是不是很简单啊~
Mybatis别名的配置(两种方法)
对于mapper的映射xml文件
sql语句中存在着resultType。
修改前:写了接受实体类的全限定名
在mybatis的配置文件中添加
位置需要添加在configtion的标签下面;
修改后:
添加后在mapper的映射文件中全限定名中改为了配置的简单的别名。
第二种方式:
在代码中:
import org.apache.ibatis.type.Alias; @Alias("jj") public class News {
在配置文件中:
可以达到与配置中声名相同的效果。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。