您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
14-mybatis核心配置文件-typeAliases标签
发布时间:2025-01-28 08:41:46编辑:雪饮阅读()
-
像前番我们delete标签的parameterType的值是java.lang.Integer,但实际上我们也可以用int,这是因为mybatis框架已经为我们设置好的一些常用的类型别名。类型别名通常都是小写字母打头的。
string=>String
long=>Long
int=>Integer
double=>Double
boolean=>Boolean
那么对于例如我们之前的查询所有的select标签的resultType的值是sp24.domain.User,如:
<select id="findAll" resultType="sp24.domain.User">
select * from user
</select>
这里的resultType也可以使用别名,但如果这里我们直接将resultType值设置为user显然不可以。
那么查询所有的测试方法运行时会抛出异常如
Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'user'. Cause: java.lang.ClassNotFoundException: Cannot find class: user
那么你可以在前番中的sqlMapConfig.xml这个mybatis核心配置文件中配置别名,但别名标签如果配置的位置顺序不对,则会在IntelliJ IDEA中有提示于configuration标签悬停上以包含如下内容:
The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".
那么结合好我这里的情况则配置好后的mybatis核心配置文件如sqlMapConfig.xml的完整配置则如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--通过properties标签加载外部properties文件-->
<properties resource="jdbc.properties"/>
<typeAliases>
<typeAlias type="sp24.domain.User" alias="user"/>
</typeAliases>
<!--数据源环境-->
<environments default="developement">
<environment id="developement">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--加载映射文件-->
<mappers>
<mapper resource="sp24/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
那么他上面那句话的提示其实意思就是要configuration中标签的配置顺序要遵循:
properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databaseIdProvider,mappers
这个顺序。
那么接下来你重新运行上面的查询所有的finAll这个select标签对应的测试方法test1就不会报错找不到user类型的错误了。
那么其它几个标签中parameterType的值原来是sp24.domain.User的,则也可以使用user了。
关键字词:mybatis,typeAliases