c语言sscanf函数的用法是什么
257
2022-12-28
Mybatis配置之<typeAliases>别名配置元素解析
在前面的文章
在这篇文章中,我们来说说
这里我们贴出之前的UserDao对应的mapper文件
如下所示:
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
select * from user where id = #{id}
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为我们提供了一个简单方便的配置方法,那就是使用
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
如上所示,我们在原来的mybatis配置文件中增加了
备注:这里需要注意的是,typeAliases配置需要放置在settings之后,否则会出异常!!!
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
select * from user where id = #{id}
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!下面跟大家说说另一种配置方法。
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
http://
在这里,我们不再使用
因此,按照上面的配置,我们还需要将实体类做一下调整,如下两种方式所示:
(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文件中引用的类型别名,改为小写,如下所示:
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
select * from user where id = #{id}
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}
最后想UxBtPVXQ说,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 {
在配置文件中:
可以达到与配置中声名相同的效果。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~